我一直在使用momentjs和moment-timezone。今天,在使用isAfter
方法进行日期比较时,我发现了奇怪的行为。
假设一个moment日期已经配置了时区值,而另一个日期没有,则日期比较应该是什么行为?
在我的情况下,我们将一个纪元时间转换为指定时区值,用于一个日期。另一个日期是以yyyy-mm-dd格式,没有任何时区值。当我比较这两个日期时,相同日期的比较失败了。
//Wed Sep 27 2017 01:13:04 GMT-0700
var localtime = moment(1506499984924).tz("America/Los_Angeles");
//Wed Sep 27 2017 00:00:00
var date = moment('2017-09-27');
//returns true
var value = localtime.isAfter(date, 'day');
理想情况下,因为两个日期都是2017年9月27日,所以应该返回false。 使用diff方法而不是isAfter返回0,即true。
欢迎任何帮助解决这个问题。
我已经用这段代码创建了一个pen:Moment。
moment.tz.setDefault("America/Los_Angeles");
,我会得到false
的输出。这是解决这个问题的正确方法吗? - Vaishalmoment.tz('2017-09-27', 'America/Los_Angeles')
。这似乎已经解决了我正在开发的日历应用程序中的很多问题。 - slimeygecko