我可以使node.jsdate始终在UTC / GMT?

我的应用程序运行在Linux服务器上,时间(自然)设置为UTC / GMT。 但是,该应用程序是在Mac桌面上开发的,通常将时间设置为当地时区。

我可以更改每个new Date()在我的代码运行:

 var date = new Date().getTime(); 

因此,确保服务器上的date总是格林尼治标准时间,但似乎不雅。

我了解用于总是返回UTC / GMT的节点的以前版本 。 有什么办法可以使这种行为回来吗?

编辑:删除添加时区偏移getTime()每注释 – 因为getTime()已经在UTC。

您可以使用node.js的TZconfiguration参数如下

 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/