时刻格式返回无效日期

use*_*203 4 javascript date momentjs

我有一个日期,我使用时刻格式化显示如下:03/04/2105.我想再次使用它将它转换为iso.结果我写道:

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

日期是23/04/2105,但是IsoDateTo返回的内容如下:2105-03-04T00:00:00当我输入大于12的日期时,它返回无效日期.为什么会这样?

Vla*_*r M 22

为了确保你正确地解析了你希望将期望的字符串格式传递给momentjs的字符串(类似这样):

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

  • 你,我的朋友很棒。谢谢 (2认同)

str*_*str 5

您不能只是将任何日期格式放入其中并期望它神奇地识别该格式。如果未指定,Moment.js依赖于JavaScript的日期解析功能以及其他格式。根据DateMDN规范,“ dateString”可以是符合IETF的RFC 2822时间戳,也可以是ISO8601的版本。您的日期字符串都不是。

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

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