代码之家  ›  专栏  ›  技术社区  ›  Paul

快速比较时间

  •  0
  • Paul  · 技术社区  · 4 年前

    我有当前时间,我需要检查当前时间是否在两次之间。

    startDate endDate 打印过去的日期。

    你能帮我一下吗?

    func getDate() -> Bool {
        let start = "07:00"
        let end = "19:00"
        let dateFormat = "HH:mm"
    
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = dateFormat
    
        let startDate = dateFormatter.date(from: start)
        let endDate = dateFormatter.date(from: end)
    
        let currentDate = Date()
    
        guard let startDate = startDate, let endDate = endDate else {
          fatalError("Date Format does not match ⚠️")
        }
        
        print(startDate < currentDate && currentDate < endDate)
        print(startDate) //2000-01-01 06:00:00 +0000
        print(endDate) //2000-01-01 22:59:00 +0000
        print(currentDate) //2021-07-13 22:11:05 +0000
    
        return startDate < currentDate && currentDate < endDate
    }
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   jnpdx    4 年前

    你可以用 Calendar.current.date(bySetting...)

    func getDate() -> Bool {
        let currentDate = Date()
        
        let startDate = Calendar.current.date(bySettingHour: 7, minute: 0, second: 0, of: currentDate)
    
        let endDate = Calendar.current.date(bySettingHour: 19, minute: 0, second: 0, of: currentDate)
    
        guard let startDate = startDate, let endDate = endDate else {
          fatalError("Date creation failed ⚠️")
        }
        
        print(startDate < currentDate && currentDate < endDate)
        print(startDate)
        print(endDate)
        print(currentDate)
    
        return startDate < currentDate && currentDate < endDate
    }