Javascript 如何使用 Moment js 将 ISO 8601 解析为日期和时间格式?
How to parse ISO 8601 into date and time format using Moment js in Javascript?
我目前正在使用 Moment js 将 ISO 8601 字符串解析为日期和时间,但它无法正常工作。我究竟做错了什么?我也会采用任何其他更简单的解决方案。
我想将 ISO 8601:"2011-04-11T10:20:30Z"
解析为字符串中的日期:"2011-04-11"
和字符串中的时间:"10:20:30"
并尝试了 console.log(moment("2011-04-11T10:20:30Z" ,moment.ISO_8601))
和 console.log(moment("2011-04-11T10:20:30Z" , ["YYYY",moment.ISO_8601])
作为测试,但它只是 returns 一个具有各种不同属性的对象。
moment 操作分为两部分:读入 date/time,然后将其吐出。您已经完成了第一部分:
moment("2011-04-11T10:20:30Z")
但是你需要调用一个输出函数,例如:
moment("2011-04-11T10:20:30Z").format('YYYY-MM-DD h:mm:ss a')
编辑: 然而值得注意的是,Moment 本身是一个已弃用的库,甚至其作者也会建议切换到较小的竞争对手:https://momentjs.com/docs/
和moment.js
var str = '2011-04-11T10:20:30Z';
var date = moment(str);
var dateComponent = date.utc().format('YYYY-MM-DD');
var timeComponent = date.utc().format('HH:mm:ss');
console.log(dateComponent);
console.log(timeComponent);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
或者简单地使用字符串操作
var str = '2011-04-11T10:20:30Z';
var parts = str.slice(0, -1).split('T');
var dateComponent = parts[0];
var timeComponent = parts[1];
console.log(dateComponent);
console.log(timeComponent);
我目前正在使用 Moment js 将 ISO 8601 字符串解析为日期和时间,但它无法正常工作。我究竟做错了什么?我也会采用任何其他更简单的解决方案。
我想将 ISO 8601:"2011-04-11T10:20:30Z"
解析为字符串中的日期:"2011-04-11"
和字符串中的时间:"10:20:30"
并尝试了 console.log(moment("2011-04-11T10:20:30Z" ,moment.ISO_8601))
和 console.log(moment("2011-04-11T10:20:30Z" , ["YYYY",moment.ISO_8601])
作为测试,但它只是 returns 一个具有各种不同属性的对象。
moment 操作分为两部分:读入 date/time,然后将其吐出。您已经完成了第一部分:
moment("2011-04-11T10:20:30Z")
但是你需要调用一个输出函数,例如:
moment("2011-04-11T10:20:30Z").format('YYYY-MM-DD h:mm:ss a')
编辑: 然而值得注意的是,Moment 本身是一个已弃用的库,甚至其作者也会建议切换到较小的竞争对手:https://momentjs.com/docs/
和moment.js
var str = '2011-04-11T10:20:30Z';
var date = moment(str);
var dateComponent = date.utc().format('YYYY-MM-DD');
var timeComponent = date.utc().format('HH:mm:ss');
console.log(dateComponent);
console.log(timeComponent);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
或者简单地使用字符串操作
var str = '2011-04-11T10:20:30Z';
var parts = str.slice(0, -1).split('T');
var dateComponent = parts[0];
var timeComponent = parts[1];
console.log(dateComponent);
console.log(timeComponent);