我有一个字符串,其中包含特定的小时 - 时间戳,如下所示:
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"
,NSDate
或NSCalendar
,而且对于解决这个看似简单的任务有多么困难我感到有些沮丧......
所以我试图将字符串和当前时间的相同时间设置为两个NSDate变量,然后使用某种比较方法,但我似乎无法在相同的基础上得到它们。 / p>
如何才能将两个时间戳放在同一个基本时间上?
所以我有一个NSDate:
NSDateFormatter
答案 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!!! ")
}