[英]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
月份编号,大写的D
或DD
表示月份的日期,大写的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.