Koyami 日历未正确显示未来日期

Posted

技术标签:

【中文标题】Koyami 日历未正确显示未来日期【英文标题】:Future date not Properly Displayed from Koyami Calendar 【发布时间】:2018-02-17 06:56:31 【问题描述】:

我是通过以下链接推荐的

https://github.com/shoheiyokoyama/Koyomi#demo_app

我想从日历中选择日期(startDate 到 endDate)。如果我使用 Koyami 日历,请从以下方法中选择日期。

 func koyomi(_ koyomi: Koyomi, didSelect date: Date?, forItemAt indexPath: IndexPath) 
    print("You Selected: \(date!)")
 

如果我首先使用此功能,我选择开始日期示例(20.2.2018)并选择结束日期示例(18.2.2018)。输出将正确显示。因为我从 startDate 中选择了上一个日期,所以我的控制台输出是

You Selected: 2018-02-20 18:30:00 +0000
You Selected: 2018-02-18 18:30:00 +0000

如果我首先使用相同的功能,我选择 startDate 示例(20.2.2018)和 endDate 示例(22.2.2018)。输出将正确显示。因为我从 startDate 选择未来日期,所以我的控制台输出是

You Selected: 2018-02-20 18:30:00 +0000
You Selected: 2018-02-20 18:30:00 +0000

我的问题是当我为 endDate 选择未来日期时,startDate 和 endDate 将显示相同的日期。但我想正确显示我的 ecpectd 输出是

You Selected: 2018-02-20 18:30:00 +0000
You Selected: 2018-02-22 18:30:00 +0000

我该如何解决这个问题。请帮助我!

【问题讨论】:

添加一些代码来理解问题。 谢谢您的回复先生。我正在使用 github 项目 我正在添加github链接先生 分步解释你的问题。像 1. 我选择 endDate 的未来日期未来日期。 2. 然后是 startDate 的未来日期。等 选择结束日期时。将显示开始日期和结束日期相同的日期 【参考方案1】:

您应该阅读 koyomi 的文档。默认情况下,它在sequence 模式下进行多项选择,使用multiple 模式。它将为您提供 2 个不同的选择日期。

    koyomi.selectionMode = .multiple(style: .background) //.sequence(style: .semicircleEdge)

更新:使用相同的选择模式 = .sequence(style: .semicircleEdge) 并从方法获取开始和结束日期: 在此开始日期为date,结束日期为toDate

func koyomi(_ koyomi: Koyomi, shouldSelectDates date: Date?, to toDate: Date?, withPeriodLength length: Int) -> Bool 
    print("Start date \(date)")
    print("End date : \(toDate)")

    if length > invalidPeriodLength 
        print("More than \(invalidPeriodLength) days are invalid period.")
        return false
    
    return true

【讨论】:

选择模式没问题。问题是日期的 didSelect 方法。 didSelect 方法日期显示不正确先生 在 didSelect 方法中,StartDate 和 End Date 显示的日期相同。刚刚打印了控制台 您需要 2 个日期。右(开始日期 - 第一次点击和结束日期) @VigneshJeyaraj 查看更新答案。使用shouldSelectDates 获取两个日期。

以上是关于Koyami 日历未正确显示未来日期的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用日历中的未来日期? [复制]

将事件添加到日历时,NSDateFormatter 未正确格式化日期

md-datepicker 未正确呈现日历

如何更改zabuto日历上的日期

根据文化显示正确的日期格式

如何在日历视图中禁用未来日期[重复]