2017-05-08 111 views
0

我有一个日期,我使用时刻显示如下: 03/04/2105。我想再次使用时刻将其转换为iso。因此,我正在写:矩形格式返回无效日期

const IsoDateTo = moment(dateTo).format('YYYY-MM-DD[T]HH:mm:ss'); 

的日期为23/04/2105,但IsoDateTo被返回是这样的:当我输入一个日期大于00另外: 2105-03-04T00:00比12回报我无效的日期。这是为什么发生?

+1

那么...什么是“dateTo”。它是一个字符串还是一个时刻对象? –

+0

当我console.log的类型dateTo它显示一个字符串。但要将它转换为这个字符串我使用时刻 – user7334203

+0

* What * string?什么是“大于9的日期”? – str

回答

6

要确保你正确地分析你要传递的预期字符串格式一起到momentjs字符串(像这样):

const IsoDateTo = moment(dateTo,'DD/MM/YYYY').format('YYYY-MM-DD[T]HH:mm:ss'); 
2

你不能只是抛出任何日期格式转换成它,并期待它会奇迹般地识别格式。如果你没有指定和其他格式,Moment.js依赖JavaScript的日期分析功能。根据MDN specification of Date,“dateString”可以是符合IETF标准的RFC 2822时间戳或ISO8601的一个版本。你的日期字符串既不是。

通常最好使用日期格式,如YYYY-MM-DD

const IsoDateTo = moment('2105-03-04').format('YYYY-MM-DD[T]HH:mm:ss');