【问题标题】:how can I have a countDown timer start form custom time in Swift?如何在 Swift 中有一个倒数计时器开始表单自定义时间?
【发布时间】:2017-05-08 09:51:03
【问题描述】:

使用这个倒数计时器,我可以从当前日期时间开始计数,但我如何才能从自定义日期时间开始倒数计时器。

let dateFormatter = DateFormatter()
let userCalendar = Calendar.current
let requestedComponent: Set<Calendar.Component> = [.month,.day,.hour,.minute,.second]

override func viewDidLoad() {
    super.viewDidLoad()
    let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(dddd), userInfo: nil, repeats: true)
    timer.fire() }

func printTime()
{
    dateFormatter.dateFormat = "yyyy/MM/dd HH:mm:ss"
    dateFormatter.calendar = Calendar(identifier: .gregorian)
    dateFormatter.locale = Locale.current
    let startTime = Date()
    let endTime = dateFormatter.date(from: "2017/10/18 14:02:00")
    let timeDifference = userCalendar.dateComponents(requestedComponent, from: startTime, to: endTime!)
    lableText.text = "\(timeDifference.month!):\(timeDifference.day!): \(timeDifference.hour!):\(timeDifference.minute!):\(timeDifference.second!)"}

【问题讨论】:

    标签: ios swift3


    【解决方案1】:

    您需要按照以下方式进行更改

        var startTime = Date()
    
       override func viewDidLoad() {
              super.viewDidLoad()
               dateFormatter.dateFormat = "yyyy/MM/dd HH:mm:ss"
               dateFormatter.calendar = Calendar(identifier: .gregorian)
               dateFormatter.locale = Locale.current
               startTime = Date()
                let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(printTime), userInfo: nil, repeats: true)
                        timer.fire()
             }
    
      func printTime()  {
              let endTime = dateFormatter.date(from: "2017/10/18 14:02:00")
              let timeDifference = userCalendar.dateComponents(requestedComponent, from: startTime, to: endTime!)
              lableText.text = "\(timeDifference.month!):\(timeDifference.day!): \(timeDifference.hour!):\(timeDifference.minute!):\(timeDifference.second!)"
                        }
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      let startTime = Date()
      

      到这样的事情:

      let calendar = NSCalendar.current
      let components = NSDateComponents.init();
      components.year = year
      components.month = month
      components.day = day
      let startTime = calendar.date(from: components)
      

      我设置了示例年、月和日,您也可以使用区域设置完整的日期时间。

      希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多