所以我有两种来自json的日期。
m = '201811';
n = '/Date(1433030400000)/';
我正在尝试使用moment.js来格式化时间,但我猜想找不到合适的方法。
moment(m).format('YYYY DD') //"201811 01"
和我无法理解的n值导致这个输出:
moment(m).format('YYYY DD')//"2015 31"
答案 0 :(得分:2)
将日期传递给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,如果你至少有版本1.3.0,你可以简单地将/Date(1433030400000)/
形式的字符串传递给moment()
构造函数,它会自动检测正确的格式,另见here。
答案 1 :(得分:0)
只需按以下格式传递它们:
var m = '201811';
var n = '/Date(1433030400000)/';
var formattedM = window.moment(m, 'YYYYMM').format('YYYY MMM DD'); //2018 Nov 01
var formattedN = window.moment(n).format('YYYY MMM DD'); //2015 May 31
我已将示例放入jsbin。
感谢Matt Johnson指出该时刻可以采用/Date(1433030400000)/
格式。