如何在JS

时间:2019-08-15 15:08:55

标签: javascript momentjs

我有两个输入,一个是日期,第二个是时间。我需要检查日期和时间是否过去。

我目前居住在多伦多,

我的日期输入为8/15/2019 我的时间输入为12:00

我面临的问题是,当我获取当前日期(现在是2019年8月15日上午11:00)时,我实际得到的时间是19:00,这使整个比较都不正确。

我尝试过的

var startDateString = moment("8/15/2019" + " " + 12:00, "MM/DD"YYYY" + " HH:mm", true).format();

产生

`2019-08-15T12:00:00+04:00`

,但是字符串格式的当前日期是完全不同的。

var now = moment().format(); 

产生

`2019-08-15T19:00:00+04:00`

我以为它应该创建一个2019-08-15T11:00:00+04:00的值

如果我能获得一些关于如何更正比较日期的提示或帮助,将不胜感激。也许我必须抵消当前的moment()?

1 个答案:

答案 0 :(得分:1)

可以自己抵消时间,但这是不必要的,因为您已经在使用Moment。 Moment有一个名为Moment Timezone的附加库,可让您设置日期的时区并几乎不费力地在不同时区之间进行转换。

尝试在您的环境中包括Moment时区(以及相关的10-year data),然后调用:

var startDateString = moment.tz("8/15/2019" + " " + "12:00", "MM/DD/YYYY" + " HH:mm", "America/New_York").format();

您还可以按时间进行操作,以在不同时区之间进行转换,例如:

let startDate = moment.tz("8/15/2019" + " " + "12:00", "MM/DD/YYYY" + " HH:mm", "America/New_York");
let la_startDate = startDate.clone().tz("America/Los_Angeles");
let la_startDateString = la_startDate.format();