gpt4 book ai didi

javascript - 使用 Date() 转换具有指定时区偏移量的时间戳;

转载 作者:行者123 更新时间:2023-11-30 12:59:03 27 4
gpt4 key购买 nike

我一直在挖掘尽可能多的东西,但我似乎找不到我要找的东西,所以我得出的结论是我不知道自己是什么寻找或不可能。无论哪种方式..

我想要实现的是采用时间戳示例:1373439600000 和 -12 到 12 的给定偏移量(就范围而言是否正确?)这样我就可以采用它上面的时间戳相应地从中减去,并将新的时间戳传递给 Date() 函数,这样我就可以对其进行操作以实现人类可读显示。

偏移量由两部分组成,一个是用户指定的,另一个是如果未指定则默认为本地 getTimezoneOffset()。因此,试图弄清楚如何采用该范围并与之合作。相应地做每件事。

想法?我什至在正确的庄园里接近这个吗?

我正在使用的时间戳已经是 UTC,不确定这是否会有所不同。

最佳答案

JavaScript Date 类型有许多 问题,但它的主要怪癖之一是它只理解两个时区 - UTC 或本地。它在内部和某些属性和函数(如 .toUTCString())中使用 UTC,但在其他方面使用本地时区。

许多浏览器在从字符串解析 Date 时会接受一个偏移量,但这只会用于设置 UTC 时间。任何离开的地方都将再次转换回本地时区。

幸运的是,有一些很棒的库可以解决这些问题。 Moment.js非常适合这个。以下是您可能要寻找的内容的示例:

moment(1373439600000).zone(8).format("YYYY-MM-DD HH:mm:ss Z")

// output: "2013-07-09 23:00:00 -08:00"

当然,您可以根据需要进行格式化,或者传入更复杂的区域偏移量,如"+05:30"。如果您需要使用实际的 IANA 时区,则有 moment-timezone配套项目,你可以这样做:

moment(1373439600000).tz('America/New_York').format("YYYY-MM-DD HH:mm:ss Z")

// output: "2013-07-10 03:00:00 -04:00"

关于javascript - 使用 Date() 转换具有指定时区偏移量的时间戳;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17955649/

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