gpt4 book ai didi

javascript - 这个时间戳是什么格式,我怎样才能把它格式化成它自己的时间

转载 作者:行者123 更新时间:2023-11-30 13:27:42 26 4
gpt4 key购买 nike

我在转换 javascript 中的时间戳时遇到问题。

我有这个时间戳:

2011-10-26T12:00:00-04:00

我一直在尝试将其格式化为可读的。到目前为止,它使用我系统的本地时间而不是时间戳中的 GMT 偏移量来转换它。我知道创建它的时区是 EST。我在太平洋标准时间,所以时间偏移了 3 小时。

而不是显示为:

Wednesday October 26, 2011 12:00 pm

显示为:

Wednesday October 26, 2011 9:00 am

我尝试了几种不同的解决方案,但最新的解决方案位于此处:http://blog.stevenlevithan.com/archives/date-time-format

我不太关心格式化部分,因为我更关心如何处理 GMT 偏移量。非常感谢任何人可以提供的任何帮助和见解。

最佳答案

在本地区域中创建日期对象。如果日期字符串是在不同的时区创建的,那么您需要调整日期对象以允许差异。

PST 和 EST 的缩写在网络上有歧义,时区缩写没有标准,有的表示两个或时区。您应该仅根据 +/- UTC 或 GMT(或多或少是同一件事)来表达您的区域。

您可以使用 Date.prototype.getTimezoneOffset 获取本地时区偏移量,它返回以分钟为单位的偏移量,必须添加到本地时间才能获取 UTC。计算时间字符串创建位置的偏移量,并将其应用于创建的日期对象(根据需要简单地加上或减去以分钟为单位的差异)。

如果您的时区是 -3 小时,getTimezoneOffset 将为在该时区创建的日期对象返回 +180。如果字符串来自 -4hrs 区域,则其偏移量为 +240。所以你可以这样做:

var localDate = new Date('2011-10-26T12:00:00') // date from string;
var originOffset = 240;
var localOffset = localDate.getTimezoneOffset();
localDate.setMinutes( localDate.getMinutes() + originOffset - localOffset );

加上原点偏移量将其设置为 UTC,减去本地偏移量将其设置为本地时间。

如果服务器发送的时间字符串是 UTC 格式,那会容易得多,那样您只需应用本地偏移量。

编辑

IE 不会解析带有偏移量的时间字符串,Chrome 认为上述时间字符串是UTC 并针对本地偏移量进行调整。所以不要让 Date 解析字符串,手动解析。

关于javascript - 这个时间戳是什么格式,我怎样才能把它格式化成它自己的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7909985/

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