You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在JavaScript/Node.js中使用Luxon仅根据星期几获取指定格式日期

Luxon 日期获取问题解答

仅输入星期几字符串无法直接得到唯一的对应日期,原因是同一星期几每7天就会重复出现。你需要先明确业务规则,确定要获取的是哪一周期范围内的对应星期几(比如本周的Monday、上一个已过去的Monday、下一个即将到来的Monday等),确定规则后即可通过Luxon输出你需要的dd.MM. 星期全称格式的日期。

以下是具体实现示例:

  • 首先安装并导入Luxon依赖
npm install luxon
const { DateTime } = require('luxon');
  • 封装转换函数(示例以获取「本周的对应星期几」为例,你可以根据自己的业务规则调整日期定位逻辑)
function formatDateByWeekday(weekdayName) {
  // 星期名称和Luxon星期数值的映射(Luxon中1代表周一,7代表周日)
  const weekdayMap = {
    Monday: 1,
    Tuesday: 2,
    Wednesday: 3,
    Thursday: 4,
    Friday: 5,
    Saturday: 6,
    Sunday: 7
  };
  const targetWeekday = weekdayMap[weekdayName];
  if (!targetWeekday) throw new Error('请输入正确的星期全称,例如Monday');

  // 定位到目标日期,当前逻辑取本周的对应星期几
  let targetDate = DateTime.now().set({ weekday: targetWeekday });

  // 如果你需要取的是下一个即将到来的星期几,可加以下逻辑
  // if (DateTime.now().weekday > targetWeekday) {
  //   targetDate = targetDate.plus({ days: 7 });
  // }

  // 如果你需要取的是上一个已经过去的星期几,可加以下逻辑
  // if (DateTime.now().weekday < targetWeekday) {
  //   targetDate = targetDate.minus({ days: 7 });
  // }

  // 格式化输出为你需要的格式
  return targetDate.toFormat('dd.MM. cccc');
}

// 调用示例
console.log(formatDateByWeekday('Monday'));
// 输出示例:06.09. Monday

内容的提问来源于stack exchange,提问作者justfrozen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:48:03