gpt4 book ai didi

javascript - Date.UTC() 未返回预期结果

转载 作者:行者123 更新时间:2023-11-28 17:12:03 26 4
gpt4 key购买 nike

我正在尝试从值数组创建 UTC 日期。文档指出,如果省略任何参数,则应默认为 0 或 1。

语法:

Date.UTC(year, month[, day[, hour[, minute[, second[, millisecond]]]]])

示例:

var tp = [2019]
var d = new Date(Date.UTC.apply(null, tp))
console.log(d.toString())

结果: “无效日期”


示例#2:

var tp = [2019, 01]

结果: “2019 年 1 月 31 日星期四 18:00:00 GMT-0600 (CST)”
预期: “2019 年 1 月 1 日星期四 00:00:00 GMT-0600 (CST)”


有人可以解释一下这里发生了什么吗?


更新:

我应该澄清一下,我按照 MDN 的规定使用 API。问题是 Safari 没有最新的实现。这在另一位 SO 用户的帮助下得到了验证,幸运的是,该用户更新了文档。

第二个示例来自于一种误解,即 .toISOString() 是零索引的,而它生成时区偏移量为 0 的值,而不是月份是零索引的。

最佳答案

示例#1

您引用的行表明 ES5 环境中需要年份和月份。如果您需要支持较旧的执行环境,您就不能只是度过这一年。

然而,正如 T.J.克劳德在评论中指出,这段代码似乎有效。您在什么浏览器中尝试它?

示例#2

JavaScript 日期中的月份是从 0 索引的。这意味着1(或01)月份是二月。

因此,Date.UTC(2019, 01) 生成 UTC 2019 年 2 月 1 日午夜的时间戳,对应于 CST 2019 年 1 月 31 日下午 6 点。

还有一件事:您应该避免在 JavaScript 数字前面加上 0,因为这是表示八进制的语法。这意味着 020 === 16

关于javascript - Date.UTC() 未返回预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54170121/

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