在Javascript/NodeJS中返回调整时区的当前日期,然后在早上6点找到相当于用户时间的UTC



如果标题有点复杂,很抱歉。在NodeJS/Javascript中,我的头不断地撞在地板上。我可以得到当前的UTC时间,如下所示:

var currentTime = Date.now();

例如,我可以为处于-3时区的用户获取当前时间,如下所示:

var offsetTime = Date.now() + (numTimeZone * 3600000);

但是,我如何将当地用户的时间(比如早上6点)转换为UTC?

实际应用

我想做的是创建一个自动电子邮件器,在当地时间早上6点向用户发送电子邮件。我的服务器在一个时区,它们将在另一个时区中,所以我试图将其与UTC标准化,这样我就可以每分钟设置我的服务器来检查currentUTC时间,然后检查用户早上6点的时间转换为UTC(local6am)的时间,如果是currentUTC > local6am,则应发送一封电子邮件。

实现这一目标的最佳方式是什么?如果可能的话,最好不用图书馆。

Utc到本地

moment.utc('2014-02-19 05:24:32 AM').toDate();

本地到utc

阅读本文档

MomentJS正在将日期解析为区域设置日期时间。如果没有给出时间,则假定为午夜。

然后,您将其转换为UTC,从而根据您的当地时间向前或向后移动。如果您在UTC+N,那么您将获得上一个日期。

moment(new Date('02-19-2014')).utc().format("YYYY-MM-DD HH:mm").toString()
moment(new Date('02-19-2014 12:00')).utc().format("YYYY-MM-DD HH:mm").toString()

(或)

你可以试试这个:

moment.utc('07-18-2013', 'MM-DD-YYYY')
moment.utc('07-18-2013', 'MM-DD-YYYY').format('YYYY-MM-DD')

您不需要显式调用toString

最新更新