gpt4 book ai didi

javascript - Date.getUTCDate() 在不同时区返回不同结果 - Javascript

转载 作者:行者123 更新时间:2023-12-03 01:15:31 25 4
gpt4 key购买 nike

Javascript 的 Date() 对象让我发疯。我正在尝试获取当前的 UTC 日期 (mm/dd/yyyy)。我需要世界上任何地方的日期都相同。因此,为此,我使用了 UTC 方法,例如 (new Date()).getUTCDate()) 方法。然而最近,当用户投诉时,我发现返回的值在世界各地都不一样。

我需要一种明确的方法来根据通用时间获取当前日期(而不是过去的日期)。

(new Date()).getTime() 对我不起作用,因为它以毫秒为单位返回。

我的代码:

function getToday() {
var today = new Date();
var dd = today.getUTCDate();
var mm = today.getUTCMonth() + 1; //January is 0!
var yyyy = today.getUTCFullYear();

if (dd < 10) {
dd = '0' + dd
}

if (mm < 10) {
mm = '0' + mm
}

today = mm + '/' + dd + '/' + yyyy
return today;
}

console.log(getToday());

编辑:

我联系了该用户并告诉他基本上执行(new Date()).getUTCDate())。他休息了一天(正确答案是 27)

info

此外,他的时区偏移量为 180

offset

他在 Windows 计算机上使用 Chrome(我不知道是什么版本)

编辑2:

我刚刚做了一些数学计算,发现了一些奇怪的东西。

我的用户说他在每天中午 12:00 换日时都会遇到问题。他在晚上 9:53 告诉我他在我的时间里遇到了问题。知道他的时区偏移量为 180 分钟,而我的时区偏移量为 240 分钟,我可以通过执行 myTime + offsetDifference 来计算他当时的时间。然而 (((9*60 + 53) + (240 - 180))/60) 大约等于晚上 11 点。因此,他的 PC 时间必须倒退 1 小时。

他可能手动设置了时间,但时区错误。

最佳答案

显然,我的用户没有设置他的时区,而只是设置了时钟。如果是这样,正如 Jonathan Gray 指出的那样,即使时间在本地检查,UTC 时间也将是错误的。他已经修复了时区并且成功了。

此外,正如 Phil 指出的那样,如果想要任何可靠的通用标准化时间,就必须使用时间始终正确的可信后端。为此,我还找到了一个名为 World Clock API 的网站。 。但是,正如我注意到的,为了获得可靠的服务并保证只要您的站点启动它就会启动,您必须将其集成到您的服务器中。一个简单的方法是使用 PHP 的 time() 方法,并计算相对于客户端时间的偏移量。

关于javascript - Date.getUTCDate() 在不同时区返回不同结果 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52031772/

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