如何在swift中追踪时间?

时间:2018-02-03 02:09:55

标签: ios swift

我需要创建一个应用程序来跟踪员工在办公室的出勤情况,我将从服务器获取时间日期和时间string之后我需要更新时间标签,然后将其转换为时间Date课程用于下一个过程。

enter image description here

class MainMenuVC: UIViewController {

    @IBOutlet weak var timeLabel: UILabel!
    @IBOutlet weak var dateLabel: UILabel!
    @IBOutlet weak var checkinStatusLabel: UILabel!

    var employee : Employee?
    var time : String?
    var date : String?

    override func viewDidLoad() {
        super.viewDidLoad()

        getDateTimeFromServer()

    }


func getDateTimeFromServer() {

// request to server to get date and time
// update the UI (date and time label)

}





}

但问题是,时间数据总是一样的,当然因为我只向服务器请求一次,所以'分钟'分钟将是静态的。对于这个考勤应用程序来说这将是一个问题。

让我们说当用户在15:23打开该菜单,但是当他们在7分钟后实际点击签到按钮时,所以将被发送回服务器的数据是15:23(当viewDidLoad首次激活时) 15:30。

那么我如何解决这个问题所以时间总是会更新,并且总是与我的UI标签和我的Date类服务器的时间相同?

1 个答案:

答案 0 :(得分:3)

这是一个简单的编程问题。你需要

  1. 每次需要时从服务器请求时间。
    1. 从服务器获取一次时间,将其转换为Date,从设备获取当前日期,计算差异,并将该差异用作偏移量。下次用户点击签入按钮时,从设备获取当前Date,添加您的偏移量,并将其用作当前Date
    2. 我留给你了解如何做到这一点的细节。看一下Xcode中的Date类引用。有一些方法可让您在Dates和数值之间进行转换,并将数字偏移应用于Dates