3
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

4

2 回答 2

10

fromISO

从 ISO 8601 字符串创建 DateTime

接受 ISO 字符串,而您正在传递一个 JavaScript 日期。

您可以使用日期toISOString()或 luxonfromJSDate

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代表分钟的小写。

于 2018-01-25T10:39:27.853 回答
1

您可以使用 fromJSDate 像:luxon.DateTime.fromJSDate(new Date())

于 2019-10-14T03:19:10.983 回答