gpt4 book ai didi

javascript - 如何删除 getTimezoneOffset

转载 作者:行者123 更新时间:2023-12-03 04:46:36 26 4
gpt4 key购买 nike

我知道 Date 对象正在使用机器时区(代码运行的地方)。我有一个特定的用例,需要清除偏移量。

var d = new Date();
console.log(d.getTimezoneOffset())

这会打印相对于 UTC 的偏移量。我想强制偏移量为零,我这样做了

var getTimezoneOffset = Date.prototype.getTimezoneOffset;
Date.prototype.getTimezoneOffset = function removeTimezoneOffset() {
return 0;
};

我做了某事后重置了

Date.prototype.getTimezoneOffset = getTimezoneOffset

这将在 eslint 中失败,提示日期原型(prototype)是只读的,不应添加属性。有没有更好的方法来消除时间偏移?

最佳答案

我感觉您正在使用一些其他使用 getTimezoneOffset 的代码,而不是修改该代码,您正在更改方法。

在不知 Prop 体问题的情况下,您也可以仅按本地时区偏移量修改日期,以便“本地”方法返回 UTC 值:

function formatAsISO(d){
function z(n){return (n<10?'0':'')+n}
return d.getFullYear() + '-' + z(d.getMonth()+1) + '-' +
z(d.getDate()) + ' ' + z(d.getHours()) + ':' +
z(d.getMinutes()) + ':' + z(d.getSeconds());
}

var d = new Date();

// Local date
console.log('Local : ' + formatAsISO(d));

// UTC equivalent
console.log('UTC : ' + d.toISOString());

// Adjust so local looks like UTC
d.setMinutes(d.getMinutes() + d.getTimezoneOffset());
console.log('Adjusted: ' + formatAsISO(d));

这会修改实际日期,因此您可能需要将其副本传递给(未指定)函数。

关于javascript - 如何删除 getTimezoneOffset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42846076/

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