【发布时间】:2015-06-05 11:32:37
【问题描述】:
我有一个以 UTC 时间存储的字符串。我正在尝试查看此时间是否在当前 UTC 时间之后。我正在使用 momentjs,当只有 1 小时的差异时,isAfter() 方法返回的值不正确。
active_time 变量发生在 15:00 UTC。 current_time 设置为 16:00 UTC。所以我认为active_time.isAfter(current_time) 应该返回false 但它正在返回true。我怎样才能让它返回false?
jsFiddle 链接:http://jsfiddle.net/Ln1bz1nx/
代码:
//String is already in utc time
var active_time = moment('2015-06-04T15:00Z', 'YYYY-MM-DD[T]HH:mm[Z]');
//Convert current time to moment object with utc time
var current_time = moment( moment('2015-06-04T16:00Z').utc().format('YYYY-MM-DD[T]HH:mm[Z]') );
console.log('active_time =',active_time);
console.log('current_time =',current_time);
console.log( active_time.isAfter(current_time) ); //Why does this return true?
【问题讨论】:
-
返回
false给我:jsfiddle.net/Ln1bz1nx/3 -
很奇怪。对我来说总是
true。我使用的是 Macbook,我不知道这是否与它有关。 -
我没有从 isAfter 获得可靠的结果。如果我在两个时刻都使用 .unix() ,我可以进行比较,否则如果它们位于不同的时区或来自不同的来源,它就不能可靠地工作。
标签: javascript momentjs