我有一个以 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?
原文由 Mdd 发布,翻译遵循 CC BY-SA 4.0 许可协议
即使第一个日期字符串是 utc,您仍然需要在比较之前将时刻设置为 utc 模式。看看这里的文档: http ://momentjs.com/docs/#/parsing/utc/