Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift根据用户输入日期启用和禁用时间选择器过去时间_Ios_Swift_Uidatepicker - Fatal编程技术网

Ios Swift根据用户输入日期启用和禁用时间选择器过去时间

Ios Swift根据用户输入日期启用和禁用时间选择器过去时间,ios,swift,uidatepicker,Ios,Swift,Uidatepicker,在我的场景中,我正在验证用户输入的当前日期或基于它的不同日期,我需要启用和禁用时间选择器过去时间限制。如果用户输入当前日期,则需要在时间picker中限制过去的时间,否则需要显示所有time列表 下面是我的代码 // MARK: Validate Current Date or Not Based on it Need to enable and disable timepicker past time let dateCurrents = Date() let

在我的场景中,我正在验证用户输入的当前
日期
或基于它的不同日期,我需要启用和禁用时间选择器过去时间限制。如果用户输入当前日期,则需要在时间
picker
中限制过去的时间,否则需要显示所有
time
列表

下面是我的代码

// MARK: Validate Current Date or Not Based on it Need to enable and disable timepicker past time

        let dateCurrents = Date()
        let formatters = DateFormatter()
        formatters.dateFormat = "yyyy-MM-dd"
        let resultDate = formatters.string(from: dateCurrents)

        if fullDate == resultDate {
            print("Same Date Past Time Disabled")
            let nows = Date()
            timePickerView.minimumDate = nows
            timePickerView.date = nows
        } else {
            print("Different Date Past Time Enabled")
            timePickerView.minimumDate =
            timePickerView.date =  // Need to Enable Past Time
        }

您可以执行以下操作:

let fullDate = datePickerView.date
let now = Date()

let calendar = Calendar.current
let result = calendar.compare(now, to: fullDate, toGranularity: .day)
let isSameDay = result == .orderedSame

if isSameDay {
    print("Same Date Past Time Disabled")
    timePickerView.minimumDate = now
    timePickerView.date = now
} else {
    print("Different Date Past Time Enabled")
    timePickerView.minimumDate = nil
    timePickerView.date = now
}

那么问题/你的问题是什么?@JoakimDanielson如果用户输入
fullDate
date和my
resultDate
系统日期相同,则需要允许时间选择器过去时间禁用功能。否则需要显示所有时间列表。如何实现这一点?只需设置
minimumDate=nil
,就不会得到最小日期。@AndreasOetjen那么
timePickerView.date
呢?是否需要设置
nil
?否,
date
只是当前选择的值,而
minimum
maximum
指定了允许的范围(如果设置为值!=
nil