将字符串与当前时间进行比较

时间:2015-12-05 22:55:00

标签: ios swift nsdate nsdateformatter

我有一个字符串,其中包含特定的小时 - 时间戳,如下所示:

function Before5Seconds(idName) {
    var btn = document.getElementById(idName);
    btn.value = "Click to start wait 5 sec";
    btn.onclick = function() {
        this.value = "waiting ...";
        setTimeout(function() {
            After5Seconds(idName);
        }, 5000);
    };
}

function After5Seconds(idName) {
    var btn = document.getElementById(idName);
    btn.value = "Click to Go";
    btn.onclick = function() {
        window.open('http://google.com', '_blank');
        Before5Seconds(id);
    };

}

Before5Seconds('btn');

我希望将此时间与当天的当前时间进行比较。我遇到了NSDate的问题,以及它使用UTC时间戳的事实。我之前没有使用过let timeToday = "14:00" NSDateNSCalendar,而且对于解决这个看似简单的任务有多么困难我感到有些沮丧......

所以我试图将字符串和当前时间的相同时间设置为两个NSDate变量,然后使用某种比较方法,但我似乎无法在相同的基础上得到它们。 / p>

如何才能将两个时间戳放在同一个基本时间上?

所以我有一个NSDate:

NSDateFormatter

1 个答案:

答案 0 :(得分:0)

所以我最后阅读了文档以了解数据类型的方面。 NSDate代表一个时间点,根据您在地球上的位置,它会以不同的方式显示。因此,使用UTC作为时间字符串和当前时间的基础是完全正确的。

我解决了这个问题,使用:

let calender = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
calender!.locale = NSLocale.currentLocale()

let timeToday = "14:00"
let timeArray = openToday.componentsSeparatedByString(":")
let timeTodayHours = Int(timeArray[0])
let timeTodayMin = Int(timeArray[1])
let timeTodayDate = calender!.dateBySettingHour(timeTodayHours!, minute: openTodayMin!, second: 00, ofDate: NSDate(), options: NSCalendarOptions())

let now = NSDate()
if now.compare(timeTodayDate!) == .OrderedDescending {
    print(" 'timeToday' has passed!!! ")
}