我正在编写自己的日历插件,但我正在努力获取给定日期的星期几。
假设我有年份 - 1905 年、月份 - 4 和日期 - 23。有什么方法可以使用这些数据 - 以更好的格式(例如 YYYY/DD/MM)将其粉碎在一起并使用这是为了计算星期几 - 我希望找到一些像 PHP 中的公历方法,但我还没有找到。
抱歉,如果之前有人问过这个问题,但我只能使用新日期查找一周中今天的问题。
最佳答案
构造一个日期对象并询问它今天是星期几:
// Note months are zero indexed so May is 4, not 5
var d = new Date(1905, 4, 23).getDay(); // 2
你可以把它变成一个函数:
function getDay(y, m, d) {
var days = ['Sunday','Monday','Tuesday',
'Wednesday','Thursday','Friday','Saturday'];
var d = new Date(y, --m, d);
return d && days[d.getDay()];
}
// What day was 23 May, 1905?
console.log(getDay(1905,5,23)); // Tuesday
编辑
请注意,这些类型的函数会将两位数年份转换为 20 世纪日期,例如
var d = new Date(5, 4, 23) // 23 May, 1905
并且他们不检查这些值是否是有效日期:
var d = new Date(5, 16, 23) // 23 May, 1906
如果您不希望这样,则必须以不同的方式构造日期并检查值:
// Create a generic date object
var d = new Date();
// Set the values for 23 May, 0005
// This way doesn't convert 5 to 1905
d.setFullYear(5, 4, 23);
// Check at least 2 values in the date are the same as the input
// The easiest to check are year and date
if (d.getFullYear() == 5 && d.getDate() == 23) {
console.log(d + 'is a valid date!');
}
您可以根据上述内容创建一个单独的函数来创建日期,如果值无效(并且支持两位数年份),则返回日期对象或 NaN。
关于javascript - 获取给定日期的星期几,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24158092/