如何使用Luxon从周数获取日期范围



我正在寻找一种方法,用Luxon从周号中获取日期范围,以替换我的"时刻"代码。今天我使用这个代码:

m = moment(yearNumber + "-W" + weekNumber);
dateFromStr = moment(m.startOf('week')).add(1, 'day'); // To get Monday 00:00:00
dateToStr = moment(m.endOf('week')).add(1, 'day'); // To get Sunday 23:59:59

我用DateTime.fromObject((从一个月的数字中找到了一种方法来实现这一点,但这对"周"不起作用。因此,我找不到从周数中做到这一点的最佳方法:(

提前谢谢。

您可以使用DateTime.fromObject,即:

从一个JavaScript对象创建一个DateTime,该对象具有诸如"year"one_answers"hour"之类的键,并具有合理的默认值。

在输入对象中传递weekYear(ISO周年(和weekNumber(ISO周号,介于1和52或53之间,具体取决于年份

这里有一个活生生的例子:

const DateTime = luxon.DateTime;
const yearNumber = 2020;
const weekNumber = 3;
const dt = DateTime.fromObject({
weekYear: yearNumber,
weekNumber: weekNumber
});
const dateFromStr = dt.startOf('week');
console.log(dateFromStr.toISO()); // last Monday at 00:00:00
const dateToStr = dt.endOf('week');
console.log(dateToStr.toISO()); // next Sunday at 23:59:59
<script src="https://cdn.jsdelivr.net/npm/luxon@1.26.0/build/global/luxon.js"></script>

您也可以使用通过ISO兼容格式的DateTime.fromISO,如YYYY-Www(请参阅此处的更多内容(。请注意,周数应该是两位数。

最新更新