【发布时间】:2012-04-03 02:37:00
【问题描述】:
在编写 Web 应用程序时,将(服务器端)所有日期时间作为 UTC 时间戳存储在数据库中是有意义的。
当我注意到在 JavaScript 中的时区操作方面,您本身无法做很多事情时,我感到很惊讶。
我稍微扩展了 Date 对象。这个功能有意义吗?基本上,每次我向服务器发送任何东西时,它都会是一个用这个函数格式化的时间戳......
你能看出这里有什么大问题吗?还是换个角度的解决方案?
Date.prototype.getUTCTime = function(){
return new Date(
this.getUTCFullYear(),
this.getUTCMonth(),
this.getUTCDate(),
this.getUTCHours(),
this.getUTCMinutes(),
this.getUTCSeconds()
).getTime();
}
这对我来说似乎有点令人费解。我也不太确定性能。
【问题讨论】:
-
我知道这是一个老问题,但尽量不要扩展像 Date 对象这样的原生对象。赞成,因为我喜欢这个问题本身。
-
Date.parse(new Date().toUTCString())
-
这是我今天的提要中出现的一个老问题,其中充满了错误信息。 时间戳始终采用 UTC。
new Date().toString()将显示当前时区时间表示,new Date().toUTCString()将显示 UTC 时间 repr,但new Date().getTime()始终为 UTC,因为这就是 Unix 时间的定义:“Unix 时间(也称为 POSIX 时间或纪元时间)是用于描述时间瞬间的系统,定义为自协调世界时 00:00:00 以来经过的秒数(UTC),1970 年 1 月 1 日星期四,不包括闰秒。”
标签: javascript timezone utc