为什么我得到" Invalid DateTime"在以下Luxon / Moment代码中?

时间:2018-01-25 10:33:01

标签: javascript momentjs luxon

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

2 个答案:

答案 0 :(得分:4)

fromISO

  

从ISO 8601字符串

创建DateTime

在传递JavaScript日期时接受ISO字符串。

您可以使用日期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代表分钟。

答案 1 :(得分:0)

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