我正在寻找一种方法,使用 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
Run Code Online (Sandbox Code Playgroud)
我找到了一种方法,可以使用“DateTime.fromObject()”从月份数字中做到这一点,但这不适用于“周”。所以我找不到从周数中做到这一点的最佳方法:(
提前致谢。
你可以使用DateTime.fromObject它:
使用“年”和“小时”等键以及合理的默认值从 JavaScript 对象创建一个 DateTime。
在输入对象中传递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:59Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/npm/luxon@1.26.0/build/global/luxon.js"></script>Run Code Online (Sandbox Code Playgroud)
您还可以使用DateTime.fromISO传递 ISO 兼容格式,例如YYYY-Www(请参阅此处的更多信息)。请注意,周数应为两位数。
| 归档时间: |
|
| 查看次数: |
13161 次 |
| 最近记录: |