在JavaScript中,获取日期对应的星期几可以通过多种方式实现。以下是一些常见的方法:
Date
对象的getDay()
方法Date
对象的getDay()
方法返回一个整数,表示星期几,其中0表示星期日,1表示星期一,依此类推,直到6表示星期六。
function getDayOfWeek(date) {
const days = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
return days[date.getDay()];
}
// 示例
const today = new Date();
console.log(getDayOfWeek(today)); // 输出当前日期对应的星期几
Intl.DateTimeFormat
对象Intl.DateTimeFormat
对象提供了一种国际化的方式来格式化日期和时间,包括获取星期几。
function getDayOfWeekIntl(date) {
const options = { weekday: 'long' };
return new Intl.DateTimeFormat('zh-CN', options).format(date);
}
// 示例
const today = new Date();
console.log(getDayOfWeekIntl(today)); // 输出当前日期对应的星期几(中文)
如果你需要更灵活的控制,也可以手动计算星期几。这种方法通常基于Zeller公式或其他日期算法。
function getDayOfWeekManual(year, month, day) {
if (month < 3) {
month += 12;
year -= 1;
}
const K = year % 100;
const J = Math.floor(year / 100);
const f = day + Math.floor((13 * (month + 1)) / 5) + K + Math.floor(K / 4) + Math.floor(J / 4) - 2 * J;
const dayOfWeek = (f + 5) % 7; // 调整为0表示星期日
const days = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
return days[dayOfWeek];
}
// 示例
const today = new Date();
console.log(getDayOfWeekManual(today.getFullYear(), today.getMonth() + 1, today.getDate()));
Intl.DateTimeFormat
在现代浏览器中支持良好,但在较旧的浏览器中可能需要Polyfill。通过以上方法,你可以灵活地在JavaScript中获取日期对应的星期几,并根据具体需求进行调整和优化。
领取专属 10元无门槛券
手把手带您无忧上云