我有一个datetime字符串,它表示纽约本地时间。
12/30/2020 12:00 pm
我想在javascript中解析它以获得EPOCH。解析必须为可能在不同时区的用户工作。
我现在做的是
moment("07/13/2015 01:45 am -04:00", 'M/D/YYYY h:mm a Z').unix()
,但这不是很好,因为我必须硬编码
-04:00
,并假设我解析的日期是东部夏令时
使用moment-timezone插件
moment.tz("12/30/2020 12:00 pm", "M/D/YYYY h:mm a", "America/New_York").unix()
另外,请注意,不能保证任何特定时区的规则将持续到将来。谁知道到2020年,如果美国政府不会像2007年那样再次改变夏时制规则。当然,它不太可能影响12月的日期,但在一般情况下,你不能确定。尤其是当你考虑到其他时区经常变化——每年全球大约有十几个或更多的变化。
哦,还有一个小问题……你说:
…获取EPOCH
epoch这个词的意思是"某事的开始"。Unix纪元为1970-01-01T00:00:00Z
。没有别的了。从unix时间戳返回的值是基于epoch的的,但它本身不是epoch。(计算中还使用了其他纪元,但与Unix Time无关)。