为什么我在下面的 Luxon/Moment 代码中得到 "Invalid DateTime"?
Why is that I'm getting "Invalid DateTime" in the following Luxon/Moment code?
const dt = DateTime.fromISO(new Date(date))
// dt => DateTime {ts: 1516876197386, zone: LocalZone, loc: Locale, invalid: "unparsable", weekData: null, …}
return dt.toFormat('yyyy/mm/dd')
结果是:Invalid DateTime
。为什么会这样以及如何解决?
Luxon 的文档:https://moment.github.io/luxon/docs/class/src/datetime.js~DateTime.html#instance-method-toFormat
Create a DateTime from an ISO 8601 string
在传递 JavaScript 日期时接受 ISO 字符串。
您可以使用 Date 的 toISOString()
或 luxon fromJSDate
const DateTime = luxon.DateTime;
const dt = DateTime.fromISO(new Date().toISOString());
console.log(dt.toFormat('yyyy/MM/dd'));
const dt2 = DateTime.fromJSDate(new Date());
console.log(dt2.toFormat('yyyy/MM/dd'));
<script src="https://moment.github.io/luxon/global/luxon.min.js"></script>
此外,请注意,您必须使用大写字母 MM
来打印月份,而不是代表分钟的小写字母 mm
。
您可以像这样使用 fromJSDate:luxon.DateTime.fromJSDate(new Date())
const dt = DateTime.fromISO(new Date(date))
// dt => DateTime {ts: 1516876197386, zone: LocalZone, loc: Locale, invalid: "unparsable", weekData: null, …}
return dt.toFormat('yyyy/mm/dd')
结果是:Invalid DateTime
。为什么会这样以及如何解决?
Luxon 的文档:https://moment.github.io/luxon/docs/class/src/datetime.js~DateTime.html#instance-method-toFormat
Create a DateTime from an ISO 8601 string
在传递 JavaScript 日期时接受 ISO 字符串。
您可以使用 Date 的 toISOString()
或 luxon fromJSDate
const DateTime = luxon.DateTime;
const dt = DateTime.fromISO(new Date().toISOString());
console.log(dt.toFormat('yyyy/MM/dd'));
const dt2 = DateTime.fromJSDate(new Date());
console.log(dt2.toFormat('yyyy/MM/dd'));
<script src="https://moment.github.io/luxon/global/luxon.min.js"></script>
此外,请注意,您必须使用大写字母 MM
来打印月份,而不是代表分钟的小写字母 mm
。
您可以像这样使用 fromJSDate:luxon.DateTime.fromJSDate(new Date())