gpt4 book ai didi

javascript - 从一个时区到 GMT 的一天开始时间

转载 作者:行者123 更新时间:2023-12-01 02:15:30 26 4
gpt4 key购买 nike

我正在使用 moment-timezone 库来构建需要与各种时区相关的 UI。

我正在输入一个时区,即“美国/芝加哥”,并且需要以 GMT 形式获取一天的开始时间。

例如,如果今天是芝加哥时间 3 月 27 日上午 9 点(格林威治标准时间下午 2 点),我需要获取 3 月 27 日上午 00:00 的纪元秒日期。

我正在使用moment.tz("America/Chicago").startOf('day')但我不断收到Tue Mar 27 2018 01:00:00 GMT-0400 (EDT) 。知道如何做到这一点吗?

谢谢

最佳答案

// This part you are already doing correctly.
// You get back a Moment object representing the start of the current day in Chicago:

var m = moment.tz("America/Chicago").startOf('day');

I need to get the date in epoch seconds

// Ok, so simply now get the associated Unix Time
var timestamp = m.unix();

另请注意,正确的术语是“Unix 时间”,而不是“纪元秒”。
请参阅我的博文:"Please don't call it Epoch Time" .

... but I keep getting Tue Mar 27 2018 01:00:00 GMT-0400 (EDT)

您可能正在查看 _dDate 对象,或者更确切地说是其中一个的字符串表示形式。不。请参阅this Moment.js documentation了解详情。

根据您的评论:

I need to take the current time in a specific timezone. I then need to convert that time to the corresponding day in GMT. Finally I need to get the midnight epoch timestamp of that GMT day.

这与你最初问的有点不同,但它会是这样的:

var timestamp = moment.utc().startOf('day').unix();

请注意,此操作涉及另一个时区是没有意义的。从逻辑上讲,当询问“现在在时区 A 转换为时区 B”时,与询问“现在在时区 B”相同。换句话说,即使存在时区,您也会获得相同的值:

var timestamp = moment.tz('America/Chicago').utc().startOf('day').unix();

所以您最好将时区排除在外。

关于javascript - 从一个时区到 GMT 的一天开始时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49519725/

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