gpt4 book ai didi

javascript - 尝试提取一个月的第一天时如何处理夏令时?

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

如果我尝试从 11 月提取第一天的数字,这工作正常:

var d = new Date(2013, 10, 1);    // 1st of November 2013
d.toISOString(); // 2013-11-01T00:00:00.000Z (November)
d.getDay(); // 5 (Correct, 1st of November = Friday = 5)

但是由于英国的夏令时(10 月底时钟拨快一小时),如果我尝试拉出 10 月的第一天,日期最终会设置为 23:00前一天:

var d = new Date(2013, 9, 1);     // 1st of October 2013
d.toISOString(); // 2013-09-30T23:00:00.000Z (September)
d.getDay(); // 2 (Last day number of September)

我该如何处理这个问题,以便无论夏令时(以及用户可能在世界上任何其他地方的任何其他时钟调整)如何,我总是在该月的 1 号获得 00:00:00?

最佳答案

您正在寻找 getDay method , 不适用于 getDate .无论时区和夏令时如何,这两种方法都始终适用于本地时间。

但是,.toISOString 没有。它以 UTC 格式格式化时间,并导致您感到困惑。使用 .toString 函数代替,它也输出本地时间。

> new Date(2013, 9, 1).toISOString()
"2013-09-30T22:00:00.000Z" // my timezone's midnight in UTC
> new Date(2013, 9, 1).toString()
"Tue Oct 01 2013 00:00:00 GMT+0200" // midnight, with offset
> new Date(2013, 9, 1).getDate()
1 // the *first* day of October
> new Date(2013, 9, 1).getDay()
2 // is a Tuesday

关于javascript - 尝试提取一个月的第一天时如何处理夏令时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19267442/

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