gpt4 book ai didi

JavaScript 日期/时间

转载 作者:行者123 更新时间:2023-11-30 12:49:16 24 4
gpt4 key购买 nike

我有以下输入,我可以更改此数据的来源

输入

var strDate = "/Date(1391402871117+0100)/";

我可以使用 eval 将其转换为日期,但我真的不想 eval

var DateResult1 = eval ("new Date(1391402871117+0100)");
console.log(DateResult1); // Date {Mon Feb 03 2014 05:47:51 GMT+0100 (Romance Standard Time)}

我确实试过了,遗憾的是不起作用:

// Remove /Date( )/
strDate = strDate.replace(/[^\d+]/g,'');

var DateResult3 = new Date(strDate);
console.log(DateResult3); //Date {Invalid Date}

当我编写 strDate 的结果时,我的手册没有 "它有效。

var DateResult2 = new Date(1391402871117+0100);
console.log(DateResult2); // Date {Mon Feb 03 2014 05:47:51 GMT+0100 (Romance Standard Time)}

如何在不使用 eval 或任何库的情况下将输入数据转换为日期?

最佳答案

您很可能不会从这段代码中得到正确的结果:

var DateResult2 = new Date(1391402871117+0100);

问题是加法:1391402871117+01000100 是一个八进制常量,等于十进制的64,这会将64 毫秒添加到1391402871117 时间戳。它似乎可能是作为时区来代替的,但是Date 构造函数不支持时区——仅支持 UTC 和浏览器的本地时区。

由于 UNIX 时间戳实际上是绝对的(它们始终采用 UTC),因此仅使用时间戳会导致 Date 实例及时引用正确的 instant,但可能在另一个时区。您可以忽略 +0100 部分,方法是使用 parseInt"1391402871117+0100" 转换为整数:

strDate = strDate.replace(/[^\d+]/g,'');
var DateResult2 = new Date(parseInt(strDate));

关于JavaScript 日期/时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21527158/

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