繁体   English   中英

Moment JS在moment.js中的时间戳记日期和时间

[英]Moment JS Date and time to timestamp in moment.js

我正在获取文本值,其格式如下:“ 9/19/2018 10:00 AM”。 您将如何使用moment.js或仅将javascript转换为纪元时间戳?

例:

console.log(moment('4/17/2018 10:00 AM', 'mm/dd/yyyy hh:mm a').format('x'));

使用日期字符串创建一个日期对象,然后使用该对象的getTime()方法。

 date = new Date("9/19/2018 10:00 AM"); console.log(date.getTime()) 

代码中的问题是,在解析输入时使用了错误的令牌。 Moment令牌区分大小写, mm代表0..59分钟, dd代表日名(根据区域设置),不支持小写yyyy

使用M表示1..12月份编号,大写的DDD表示月份的日期,大写的YYYY表示年份,如moment(String, String)文档中所述。

您的代码可能像这样:

 console.log(moment('4/17/2018 10:00 AM', 'M/D/YYYY hh:mm a').format('x')); console.log(moment('4/17/2018 10:00 AM', 'M/D/YYYY hh:mm a').valueOf()); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js"></script> 

请注意,您可以同时使用format('x') (返回String )和valueOf() (返回Number )。

我建议在new Date()Date.parse() )上使用moment(String, String) ,因为这样您可以明确说明如何解析输入(对于1/2/2018之类的输入,您期望什么?2月1日)还是1月2日?)。 请参阅此处有关Date.parse行为的说明

令人惊讶的是,这些格式(例如7/2/2012 12:34也是明确的。 Date.parse对于非美国(DD/MM/YYYY )格式Date.parse喜欢美国( MM/DD/YYYY (DD/MM/YYYY )格式。

这些格式可能对人类来说是模棱两可的,因此,如果可能,您应该首选YYYY/MM/DD

普通js

new Date("9/19/2018 10:00 AM");

如果你想做一下js

moment("9/19/2018 10:00 AM").unix()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM