两个UIDatePicker之间的不同间隔时间
Posted
技术标签:
【中文标题】两个UIDatePicker之间的不同间隔时间【英文标题】:Different interval time between two UIDatePicker 【发布时间】:2017-07-29 11:09:57 【问题描述】:我有两个 UIDatePicker,我想显示从和两次 所以如果我选择时间为 4:30 那么在另一个 UIDatePicker 它将从 6:30 开始显示,所以我想要 2 小时间隔时间
那么任何人都可以对此有任何解决方案吗?
请帮帮我。
let datePickerView : UIDatePicker = UIDatePicker()
datePickerView.datePickerMode = UIDatePickerMode.time
txtFrom.inputView = datePickerView
datePickerView.addTarget(self, action: #selector(datePickerValueChanged), for: .valueChanged)
func datePickerValueChanged(sender: UIDatePicker)
let timeFormatter = DateFormatter()
timeFormatter.timeStyle = .short
txtFrom.text = timeFormatter.string(from: sender.date)
let datePickerTo : UIDatePicker = UIDatePicker()
datePickerTo.datePickerMode = UIDatePickerMode.time
let date1 = timeFormatter.date(from: txtFrom.text!)
datePickerTo.minimumDate = date1?.addingTimeInterval(60 * 60 * 2)
txtTo.inputView = datePickerTo
datePickerTo.addTarget(self, action: #selector(datePickerValueChangedTO), for: .valueChanged)
func datePickerValueChangedTO(sender: UIDatePicker)
if Validate .isEmpty(txtFrom.text)
Util.invokeAlertMethod("ReHydration", strBody: "Please Select From Time", delegate: nil)
return
else
let timeFormatter = DateFormatter()
timeFormatter.timeStyle = .short
txtTo.text = timeFormatter.string(from: sender.date)
let date1 = timeFormatter.date(from: txtFrom.text!)
let date2 = timeFormatter.date(from: txtTo.text!)
let calender:Calendar = Calendar.current
let components: DateComponents = calender.dateComponents([.hour, .minute ], from: date1!, to: date2!)
print(components)
var returnString:String = ""
print(components.minute!)
if components.hour! <= 120 && components.minute! <= 60
returnString = "Just Now"
else if components.minute! >= 1
returnString = String(describing: components.minute) + " min ago"
else if components.hour! >= 1
returnString = String(describing: components.hour) + " hour ago"
【问题讨论】:
【参考方案1】:是的,您可以使用addingTimeInterval
方法实现此功能。
定义变量来存储第一个日期选择器的日期。
var fromTime: Date?
当您完成从 datePickerView
中选择日期时,将 datePickerView.date
保存到 fromTime 变量中。
之后,为 datePickerTo
设置该 DatePicker 的 minimumDate
属性,如下所示。
datePickerTo.minimumDate = fromTime?.addingTimeInterval(60 * 60 * 2) // 2 hour interval
因此,它将打开比datePickerView
提前2 小时的日期选择器。
希望你能得到你的想法。
【讨论】:
@VimalBosamiya 你能在尝试上述解决方案后更新代码吗? 应该是 datePickerTo.setDate (fromTime?.addingTimeInterval(60 * 60 * 2), animated: false) 应该设置日期属性而不是 minimumDate 属性。 developer.apple.com/documentation/uikit/uidatepicker以上是关于两个UIDatePicker之间的不同间隔时间的主要内容,如果未能解决你的问题,请参考以下文章
为什么UIDatePicker会填充两个不同的TextField相同的值
iPad UI 的 JavaScript 模拟(特别是 UIDatePicker 和 UIPicker)