我有两个输入,一个是日期,第二个是时间。我需要检查日期和时间是否过去。
我目前居住在多伦多,
我的日期输入为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()?
答案 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();