如何在swift 4中比较两个日期并在它们之间进行计时器倒计时

穆罕默德·哈桑

我正在尝试NSTimer在未来日期和当前日期之间进行倒计时,并且此更新出现在视图中。

例如,如果当前日期是 25/4/2019 而未来日期将是 30/4/2019,这将是一个倒数计时器 5d:2h:50m:20s

我用了一些代码

  @IBOutlet weak var btnTimeLabel : UIButton!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        let when = DispatchTime.now() + 0.1 // change 2 to desired number of seconds
        DispatchQueue.main.asyncAfter(deadline: when) {
            Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(ViewController.countDownDate), userInfo: nil, repeats: true)
        }

    }


    @objc func countDownDate() {

        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd-mm-yyyy" //Your date format
        dateFormatter.timeZone = TimeZone(abbreviation: "GMT+0:00") //Current time zone
        let futuredate = dateFormatter.date(from: "29-4-2019") //according to date format your date string
        var calendar = Calendar.current
        let diffDateComponents = calendar.dateComponents([.day, .hour, .minute, .second], from: Date(), to: futuredate!)
        print (Date())
        print(diffDateComponents)
        let countdown = "Days \(String(describing:diffDateComponents.day!)),  Hours: \(String(describing: diffDateComponents.hour!)), Minutes: \(String(describing: diffDateComponents.minute!)), Seconds: \(String(describing: diffDateComponents.second!))"
        print("countdown",countdown)
        var dayText = String(describing: diffDateComponents.day!) + "d "
        var hourText = String(describing: diffDateComponents.hour!) + "h "
        btnTimeLabel.setTitle(dayText + hourText + String(describing: diffDateComponents.minute!) + "m " + String(describing: diffDateComponents.second!) + "s", for: .normal)
        //print(dayText + hourText + String(describing: diffDateComponents.minute!) + "m " + String(describing: diffDateComponents.second!) + "s")
    }        // Dispose of any resources that can be recreated.
    }

它给了我错误的计时器

乔金·丹尼尔森

这是我使用DateComponentsFormatter获取时差的版本

设置DateComponentsFormatter

let dcf = DateComponentsFormatter()
dcf.allowedUnits = [.day, .hour, .minute, .second]
dcf.unitsStyle = .full

设置普通日期格式化程序

let df = ISO8601DateFormatter()
df.formatOptions = [.withFullDate, .withDashSeparatorInDate]

执行格式化

if let future = df.date(from: "2019-04-29"), let diff = dcf.string(from: Date(), to: future) {
    print(diff)
}

输出是

3天6小时9分9秒

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift:如何在动画的SKShapenode倒计时上使计时器无效?

来自分类Dev

如何在ASP.NET MVC中添加计时器倒计时操作

来自分类Dev

我如何在 C# 中编写计时器倒计时?

来自分类Dev

如何快速倒计时或倒数计时器?

来自分类Dev

如何使该计时器正确倒计时?

来自分类Dev

如何使用 OnPressed FAB 按钮在 Flutter 中设置计时器倒计时 30 秒?

来自分类Dev

如何在flutter中将简单的倒计时计时器构造函数实现到应用程序中?

来自分类Dev

如何在Swift中每年重复倒计时到某个日期

来自分类Dev

如何使Swift倒计时

来自分类Dev

使用jquery,如何制作可以立即重启并明显倒计时的计时器?

来自分类Dev

如何倒计时过期日期

来自分类Dev

在 Swift 4 中创建一个简单的倒计时

来自分类Dev

如何同步两个程序的计时器

来自分类Dev

如何在Swift中设置计时器

来自分类Dev

如何在Swift中设置计时器

来自分类Dev

如何使用NSTimer进行倒计时?

来自分类Dev

如何进行倒计时?

来自分类Dev

如何使用 time() 进行倒计时

来自分类Dev

如何在反应中显示倒计时/倒计时

来自分类Dev

SwiftUI —如何在ScrollView中显示倒计时?

来自分类Dev

如何在Vue3中进行简单的倒计时?

来自分类Dev

AngularJS:如何使用存储在 cookie 中的计时器倒计时使页面处于非活动状态一段时间?

来自分类Dev

如何在PowerShell中比较两个日期并在数分钟内获得差异

来自分类Dev

如何在PowerShell中比较两个日期并在数分钟内获得差异

来自分类Dev

如何更正自定义单元格中计时器倒计时中的数字跳过?

来自分类Dev

如何创建倒计时计时器,当我浏览到应用程序的其他页面时该计时器保持不变?

来自分类Dev

如何在Matlab中强制对进程进行计时器

来自分类常见问题

如何在Java 8中比较两个日期之间的分钟差异,同时还要考虑时区差异?

来自分类Dev

如何在Swift扩展中使计时器无效

Related 相关文章

  1. 1

    Swift:如何在动画的SKShapenode倒计时上使计时器无效?

  2. 2

    如何在ASP.NET MVC中添加计时器倒计时操作

  3. 3

    我如何在 C# 中编写计时器倒计时?

  4. 4

    如何快速倒计时或倒数计时器?

  5. 5

    如何使该计时器正确倒计时?

  6. 6

    如何使用 OnPressed FAB 按钮在 Flutter 中设置计时器倒计时 30 秒?

  7. 7

    如何在flutter中将简单的倒计时计时器构造函数实现到应用程序中?

  8. 8

    如何在Swift中每年重复倒计时到某个日期

  9. 9

    如何使Swift倒计时

  10. 10

    使用jquery,如何制作可以立即重启并明显倒计时的计时器?

  11. 11

    如何倒计时过期日期

  12. 12

    在 Swift 4 中创建一个简单的倒计时

  13. 13

    如何同步两个程序的计时器

  14. 14

    如何在Swift中设置计时器

  15. 15

    如何在Swift中设置计时器

  16. 16

    如何使用NSTimer进行倒计时?

  17. 17

    如何进行倒计时?

  18. 18

    如何使用 time() 进行倒计时

  19. 19

    如何在反应中显示倒计时/倒计时

  20. 20

    SwiftUI —如何在ScrollView中显示倒计时?

  21. 21

    如何在Vue3中进行简单的倒计时?

  22. 22

    AngularJS:如何使用存储在 cookie 中的计时器倒计时使页面处于非活动状态一段时间?

  23. 23

    如何在PowerShell中比较两个日期并在数分钟内获得差异

  24. 24

    如何在PowerShell中比较两个日期并在数分钟内获得差异

  25. 25

    如何更正自定义单元格中计时器倒计时中的数字跳过?

  26. 26

    如何创建倒计时计时器,当我浏览到应用程序的其他页面时该计时器保持不变?

  27. 27

    如何在Matlab中强制对进程进行计时器

  28. 28

    如何在Java 8中比较两个日期之间的分钟差异,同时还要考虑时区差异?

  29. 29

    如何在Swift扩展中使计时器无效

热门标签

归档