弃用警告:时刻构建回落到日期

jem*_*emz 3 javascript momentjs

我试图转换这个日期时间

150423160509 //这是utc datetime

采用以下格式:

2015-04-24 00:05:09 //当地时区

通过使用moment.js

var moment = require('moment-timezone');


var a = moment.tz('150423160509', "Asia/Taipei");
console.log( a.format("YYYY-MM-DD H:m:s") );
Run Code Online (Sandbox Code Playgroud)

但它给了我这个错误

Deprecation warning: moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release
Run Code Online (Sandbox Code Playgroud)

Leo*_*out 5

这是我在Google中输入“矩型构造回落到js日期”时发现的。(摘自乔·威尔逊的文章

要消除该警告,您需要执行以下任一操作:

  • 输入日期字符串的ISO格式版本:

    moment('2014-04-23T09:54:51');

  • 传递您现在拥有的字符串,但告诉Moment字符串采用的格式:

    moment('Wed, 23 Apr 2014 09:54:51 +0000', 'ddd, DD MMM YYYY HH:mm:ss ZZ');

  • 将您的字符串转换为JavaScript Date对象,然后将其传递给Moment:

    moment(new Date('Wed, 23 Apr 2014 09:54:51 +0000'));

    最后一个选项是Moment现在支持的内置回退,并且已弃用控制台警告。他们说他们不会在将来的版本中支持这种后备。他们解释说,使用新的Date('my date')太不可预测了。

希望有帮助;)


And*_*ers 5

您需要告诉我们如何解析您的日期格式,如下所示:

var parsedDate = moment.utc("150423160509", "YYMMDDHHmmss");
var a = parsedDate.tz("Asia/Taipei");

// I'm assuming you meant HH:mm:ss here
console.log( a.format("YYYY-MM-DD HH:mm:ss") );
Run Code Online (Sandbox Code Playgroud)