gpt4 book ai didi

node.js - 如何在nodejs中确定两个日期是本地时间的同一天?

转载 作者:搜寻专家 更新时间:2023-11-01 00:00:50 25 4
gpt4 key购买 nike

这里有两个日期,2015-11-10 09:00:00+08:002015-11-10 01:00:00+08:00 在中国是同一天。但它们在 UTC 中是不同的一天。

那么...我如何确定两个 UTC 日期在 node.js 中的不同时区是同一天?


对不起,我的描述含糊不清,英语不好。

我有两个字符串:start_time 和 end_time。 clint 上传另外两个字符串:timezone_str、utc_time_str。

我想确定客户端时间是在开始时间和结束时间之间。

例如

  • 开始时间:2015-11-10 00:00:00
  • 结束时间:2015-11-11 00:00:00
  • utc_time_str:2015-11-10 02:00:00Z
  • timezone_str:美国/纽约

除了client_time.isBetween(start_time, end_time) == false

感谢@Matt Johnson 的回答,moment-timezone可以解决我的问题。

client_time = moment(utc_time_str).tz(timezone_str);
start = moment.tz(start_time, timezone_str);
end = moment.tz(end, timezone_str);
client_time.isBetween(start, end) === false

最佳答案

最可靠的方法是使用 parseZonemoment.js 中发挥作用保留提供的偏移量。然后使用 isSame带有 'day' 参数的函数,该参数测试同一年、月和日。

var m1 = moment.parseZone("2015-11-10 09:00:00+08:00");
var m2 = moment.parseZone("2015-11-10 01:00:00+08:00");
if (m1.isSame(m2, 'day')) {
// ...
}

使用这种方法,给出的偏移量无关紧要,运行代码的计算机上的时区也无关紧要。它只是比较所提供的两个日期。

关于node.js - 如何在nodejs中确定两个日期是本地时间的同一天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33775607/

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