Moment.js - 从对象获取显示格式或格式化值

时间:2018-01-17 14:02:00

标签: javascript angular typescript momentjs angular-material2

我正在为项目使用Angular和Material2。

我用这种方式创造了一个时刻对象:

myDate = moment.utc(new Date()).format("YYYY-MM-DD HH:mm:ss");

然后将此对象作为参数传递给需要知道格式化日期字符串的其他函数。

记录这个对象我看,它有一个属性:_f: YYYY-MM-DD HH:mm:ss"和另一个:_i: "2018-01-17 13:51:54"

有没有办法可以获得_f_i的价值?

编辑:
最后,我希望"2018-01-17 13:51:54"不是_f_i

EDIT2:
myDate充当该函数内的Moment对象。即:我正在扩展MomentDateAdapter并覆盖format(date: Moment, displayFormat: string): string {}所以日期是一个Moment对象。这在Material2 Datepicker中使用。

EDIT3 - 一些结果:
toString:Wed Jan 17 2018 14:10:53 GMT+0100
格式:2018-01-17T14:10:53+01:00
toISOString:2018-01-17T13:10:53.000Z

1 个答案:

答案 0 :(得分:2)

作为Internal Properties指南状态,您可以使用:

  

要打印出片刻的价值,请使用.format().toString().toISOString()

而非_i,而您可以使用creationData()而不是format返回的_f属性。

编辑后(最后,我想得到" 2018-01-17 13:51:54"不是真的_f_i ),你可以简单地使用format()



let myDate = moment.utc('2018-01-17 13:51:54'); // myDate is a moment object
let cData = myDate.creationData();
console.log( myDate.format("YYYY-MM-DD HH:mm:ss") );
console.log( cData.format );
console.log( myDate.format(cData.format) );

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>
&#13;
&#13;
&#13;