提问人:RamAlx 提问时间:5/8/2017 最后编辑:RamAlx 更新时间:5/8/2017 访问量:80843
时刻格式返回无效日期
Moment format returns invalid date
问:
我有一个日期,我使用时刻格式化,如下所示: 03/04/2105. 我想再次使用时刻将其转换为 iso。因此,我写了:
const IsoDateTo = moment(dateTo).format('YYYY-MM-DD[T]HH:mm:ss');
日期是 23/04/2105,但 IsoDateTo 返回如下内容: 2105-03-04T00:00:00 此外,当我输入大于 12 的日期时,它会返回我无效日期。为什么会这样?
答:
72赞
Vladimir M
5/8/2017
#1
为了确保你正确地解析了字符串,你希望将预期的字符串格式传递给 momentjs(如下所示):
const IsoDateTo = moment(dateTo,'DD/MM/YYYY').format('YYYY-MM-DD[T]HH:mm:ss');
7赞
str
5/8/2017
#2
你不能只是把任何日期格式扔进去,并期望它神奇地识别格式。Moment.js依赖于 JavaScript 的日期解析功能(如果您不指定和其他格式)。根据 Date 的 MDN 规范,“dateString”可以是符合 IETF 的 RFC 2822 时间戳,也可以是 ISO8601 的版本。您的日期字符串都不是。
通常最好使用日期格式,例如 。YYYY-MM-DD
const IsoDateTo = moment('2105-03-04').format('YYYY-MM-DD[T]HH:mm:ss');
评论