我可以使node.jsdate始终在UTC / GMT?
我的应用程序运行在Linux服务器上,时间(自然)设置为UTC / GMT。 但是,该应用程序是在Mac桌面上开发的,通常将时间设置为当地时区。
我可以更改每个new Date()
在我的代码运行:
var date = new Date().getTime();
因此,确保服务器上的date总是格林尼治标准时间,但似乎不雅。
我了解用于总是返回UTC / GMT的节点的以前版本 。 有什么办法可以使这种行为回来吗?
编辑:删除添加时区偏移getTime()每注释 – 因为getTime()已经在UTC。
您可以使用node.js的TZ
configuration参数如下
export TZ=utc nodejs server/index.js
来自Date#getTime
的MDN文档 :
getTime方法返回的值是1970年1月1日00:00:00 UTC以来的毫秒数。
假设你将date/时间存储为数字(我会推荐), getTime
已经是UTC了 。
假设你的客户端然后从服务器请求一个date。 如果服务器提供date作为timestamp
,这是一个数字 ,客户端然后可以这样做:
new Date(timestamp);
它会正确调整到客户端的当地时间。
当然,也许我误解了你的问题。 但我只想指出,这…
new Date().getTime() + new Date().getTimezoneOffset();
…永远不应该是真的有道理。 这需要一个基于UTC的时间,然后进一步抵消,实质上是双倍的时间偏移。
moment.js是用于处理date的stream行节点和浏览器模块。 它有一个utc模式,应该给你你所需要的。 http://momentjs.com/docs/#/manipulating/utc/