DatePicker 的选择与返回的日期不同
Posted
技术标签:
【中文标题】DatePicker 的选择与返回的日期不同【英文标题】:DatePicker's selection is different from the returned date 【发布时间】:2019-09-16 06:18:18 【问题描述】:选择的是 9/16/21,但返回的日期是 9/16/20。返回的日期没有以某种方式同步。这里没有什么特别的,只是 DatePicker 的标准用法。它是 DatePicker 的错误吗?如何解决这个问题?
DatePicker(selection: $model.returnDate, in: model.returnDateRange, displayedComponents: .date)
Text("Return Date")
Full Source Code
如何重现:
将第一个日期选择器的年份改为2020年,如果你想再做一次,只需将第一个日期选择器的日期改为2021、2022...
【问题讨论】:
这似乎是一个组合问题。选择器正在返回正确的数据。您可以通过打印 returnDate 属性的didSet ...
中的值来验证这一点。实际上,如果您在 didSet 闭包中设置消息文本,它就可以正常工作。似乎水槽关闭执行得太快了。我暂时没时间了,但稍后会继续;-)
【参考方案1】:
我认为这是 DatePicker 的错误。
可以通过使用出发发布者更新返回日期来解决。
DatePicker(selection: $model.returnDate, in: model.returnDateRange, displayedComponents: .date)
Text("Return Date")
.onReceive(model.$departureDate, perform:model.updateReturnDate)
func updateReturnDate(_ date: Date)
if date > returnDate
returnDate = date
【讨论】:
以上是关于DatePicker 的选择与返回的日期不同的主要内容,如果未能解决你的问题,请参考以下文章
Bootstrap datepicker 显示的日期格式与值的格式不同
Sencha touch datepicker 和 ios 软键盘
jQuery:如何从与 datepicker 插入日期的输入字段不同的元素中激活 datepicker?
jqueryUI datepicker 在传递日期之前触发输入的模糊,避免/解决方法?