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

时间:2018-06-06 17:29:36

标签: javascript momentjs

我收到一个文本值,格式如下:" 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'));

3 个答案:

答案 0 :(得分:3)

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



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




答案 1 :(得分:1)

正常的js

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

如果你想做片刻js

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

答案 2 :(得分:1)

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

M月份编号1..12,大写DDD代表日期,大写YYYY代表{{3} } docs。

您的代码可能如下:



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>
&#13;
&#13;
&#13;

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

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

的说明
  

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

     

但是,这些格式可能对人类不明确,因此如果可能,您应该更喜欢YYYY/MM/DD