gpt4 book ai didi

javascript - 将 Date() 转换为 IsoString 未显示正确的 hh :mm:ss

转载 作者:行者123 更新时间:2023-11-28 13:09:33 24 4
gpt4 key购买 nike

我有一个像这样的日期变量 const date=new Date() ,当我 console.log 时,它显示我 Tue May 02 2017 11:35:50 GMT+0300 (GTB Daylight Time) 这当然是正确的。我想将其转换为 Iso Date,并且我正在使用 javascript 的 toIsoString() 函数,如下所示:

const IsoDate = (date.toISOString()).slice(0, -5);
console.log(IsoDate)

但它在控制台中向我显示了以下内容:2017-05-02T08:35:50 似乎显示比实际日期早3小时。为什么会发生这种情况?

最佳答案

因为它给出的是 GMT [格林威治时区] 时间。 toISOString 方法始终为 UTC。

要获取保持时区的 ISO 字符串,请使用此函数

    function formatLocalDate() {
//pass date whatever u want
var now = new Date(),
tzo = -now.getTimezoneOffset(),
dif = tzo >= 0 ? '+' : '-',
pad = function(num) {
var norm = Math.abs(Math.floor(num));
return (norm < 10 ? '0' : '') + norm;
};
return now.getFullYear()
+ '-' + pad(now.getMonth()+1)
+ '-' + pad(now.getDate())
+ 'T' + pad(now.getHours())
+ ':' + pad(now.getMinutes())
+ ':' + pad(now.getSeconds())
+ dif + pad(tzo / 60)
+ ':' + pad(tzo % 60);
}

当然最好的选择是 Moment JS :)

关于javascript - 将 Date() 转换为 IsoString 未显示正确的 hh :mm:ss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43733539/

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