gpt4 book ai didi

javascript - momentjs 日期与时区的比较

转载 作者:行者123 更新时间:2023-11-29 21:01:09 25 4
gpt4 key购买 nike

我使用 momentjs 和 moment-timezone 有一段时间了。今天在使用 isAfter 方法进行日期比较时,我发现了奇怪的行为。

假设某一时刻的日期配置了时区值,而另一时刻没有配置时区值,那么日期比较的行为应该是什么?

在我的例子中,我们将一个纪元时间转换为一个日期的特定时区值。其他日期的格式为 yyyy-mm-dd,没有任何时区值。当我比较这两天时,同一天的值(value)失败了。

//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,这是真的。

感谢任何帮助来解决这个问题。

我用这段代码创建了一支笔:Moment

最佳答案

在您的代码中:

var date = moment('2017-09-27');

这会在 本地时间 午夜创建一个值。这与特定时刻的关系在很大程度上取决于您的计算机设置的本地时区。

时刻对象总是作为时刻进行比较 - 即基于 UTC 的瞬时值。

我在运行您的代码笔时看到 false,因为我所在的时区落后 UTC。如果您看到 true,那是因为您所在的本地时区比 UTC (给定另一个值的时间,早一个多小时)。 p>

关于javascript - momentjs 日期与时区的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46445826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com