如何使用矩将字符串日期转换为Unix格式

时间:2019-03-14 17:21:53

标签: date momentjs

我这个日期的字符串类型为:14-03-2019,我需要将其转换为Unix格式。

这是我在javascript中的代码:

let time = moment(time).unix();

但请立即用此错误答复我:

  

弃用警告:提供的值不是公认的RFC2822或ISO格式。此刻的构建工作归结于js Date(),它在所有浏览器和版本之间都不可靠。不建议使用非RFC2822 / ISO日期格式,并将在即将发布的主要版本中将其删除。有关更多信息,请参阅http://momentjs.com/guides/#/warnings/js-date/。   参数:   [0] _isAMomentObject:true,_isUTC:false,_useUTC:false,_l:undefined,_i:14-03-2019,_f:undefined,_strict:undefined,_locale:[object Object]   错误       在Function.createFromInputFallback(/Users/Hernan/Haip/haip/node_modules/moment/moment.js:320:98)       在configFromString(/Users/Hernan/Haip/haip/node_modules/moment/moment.js:2368:15)       在configFromInput(/Users/Hernan/Haip/haip/node_modules/moment/moment.js:2594:13)       在prepareConfig(/Users/Hernan/Haip/haip/node_modules/moment/moment.js:2577:13)       在createFromConfig(/Users/Hernan/Haip/haip/node_modules/moment/moment.js:2544:44)       在createLocalOrUTC(/Users/Hernan/Haip/haip/node_modules/moment/moment.js:2631:16)       在createLocal(/Users/Hernan/Haip/haip/node_modules/moment/moment.js:2635:16)       在钩子上(/Users/Hernan/Haip/haip/node_modules/moment/moment.js:12:29)       在createTagChart(/Users/Hernan/Haip/haip/server/components/utils/index.js:36:18)       在Function.getInfluecerSearched(/Users/Hernan/Haip/haip/server/api/campaign-engine/campaign.model.js:439:39)       在process.internalTickCallback(internal / process / next_tick.js:77:7)

并返回一个NAN

如何在瞬间将我的字符串转换为unix格式?

1 个答案:

答案 0 :(得分:0)

由于您的日期格式不符合 ISO_8601 格式,因此您需要将输入日期格式提供给moment构造函数。在您的情况下,它看起来是'DD-MM-YYYY'格式,而不是ISO日期时间格式之一,特别是对于日期,它就是YYYY-MM-DD

因此,您需要将自定义输入格式作为矩构造函数的第二个参数提供。

let time = moment(time, 'DD-MM-YYYY').unix(); // should output the correct value

但是我建议您尝试使源日期时间尽可能地采用标准ISO格式,而不是任意的自定义日期格式字符串。