所以我有两种来自 json 的日期。
m = '201811';
n = '/Date(1433030400000)/';
我正在尝试使用 moment.js 来格式化时间,但我想我找不到合适的方法。
moment(m).format('YYYY DD') //"201811 01"
我无法理解的 n 值会导致此输出:
moment(m).format('YYYY DD')//"2015 31"
最佳答案
当您将日期传递给 moment()
构造函数时,您可能必须指定日期的格式。
所以对于第一次约会你需要做的:
moment(m, 'YYYYMM').format('YYYY MM'); // if the date is indeed in the form YYYYMM
对于第二个日期,只需从字符串中提取数字部分并将其提供给 moment
:
var ts = n.match(/(\d+)/);
moment(+ts[1]).format('YYYY DD');
查看代码片段:
var m = '201811';
var n = '/Date(1433030400000)/';
alert(moment(m, 'YYYYMM').format('YYYY MM'));
var ts = n.match(/(\d+)/);
moment(+ts[1]).format('YYYY DD');
alert(moment(+ts[1]).format('YYYY MM'));
<script src="http://momentjs.com/downloads/moment.js"></script>
编辑:
感谢@MattJohnson,如果你至少有 moment 版本 1.3.0,你可以简单地将 /Date(1433030400000)/
形式的字符串传递给 moment()
构造函数,它会自动检测正确的格式,另请参见 here .
关于javascript - moment.js 中的日期格式,奇怪的日期值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31318547/