javascript - getUTCDate()函数在不同时区的问题

标签 javascript datetime timezone

我面临着非常奇怪的问题,请看下面的两个例子。

我的开发环境时区:GMT+0500

当我使用以下功能时:

var d = new Date("Tue Mar 18 2014 00:00:00 GMT+0500");
var n = d.getUTCDate(); 

n = 17 是正确的(返回特定本地时间、日期时间月份的 UTC 天),并且一切在我的时区中运行良好。

我的客户时区:GMT+0000

var d = new Date("Tue Mar 18 2014 00:00:00 GMT+0000");
var n = d.getUTCDate(); 

n = 18 这是错误的

有没有人放点灯,这是为什么?如何解决这个问题?

如有任何帮助,我们将不胜感激。

最佳答案

n = 18 which is wrong

不,不是。您提供了 GMT+0000,它与 GMT 或 UTC 相同。因此 getUTCDate 的结果当然是您传入的日期。

我认为您对您的措辞感到困惑:

My Development Environment Time Zone: GMT+0500

My Clients Time Zone: GMT+0000

时区不是数字偏移量。时区可以一个偏移量,或者多个偏移量,并且包括偏移量随时间变化的历史记录。请参阅the timezone tag wiki中的“时区!=偏移” .

因此,这些可能是您和您的客户的当前偏移量,但这并不一定意味着它们始终处于相同的偏移量中。如果您的客户在英国,那么他们现在的位置为 +0000,但很快就会变为 +0100。 See here for details .

关于javascript - getUTCDate()函数在不同时区的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22178648/

相关文章:

javascript - PHP函数无法调用

java - 使用 UCanAccess JDBC 驱动程序时格式化日期

python - 如何将具有空值的列转换为日期时间格式?

java - Java 8 和 Java 7 中的时区差异

php - 用于计算用户所在时区的 Twitter 时区和 created_at(utc 时间)值

javascript - 10 秒后终止子进程 - NodeJS

javascript - 在 Node/Express 中将 CSV 转换为 XML 的优雅方式

javascript - 你能给 Dart 中的函数添加属性吗?

php - SQL 查询返回错误的时间戳

java - ZonedDateTime 持久化到 SQL 数据库