如何将星期几的名称转换为星期几

How to convert day of week name to day of week number

本文关键字:转换      更新时间:2023-09-26

如何获得一周中天数的整数等量,即monday2, tuesday3, wednesday4,等等?

我有:

var days  = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];

,我需要做

console.log(days['monday']) //i need to see the integer 2
console.log(days['tuesday']) //i need to see the integer 3   

可以使用查找对象:

var days = {
    sunday: 1,
    monday: 2,
    tuesday: 3,
    wednesday: 4,
    thursday: 5,
    friday: 6,
    saturday: 7
}
console.log(days["sunday"]) //1

现在,只需访问上述任何属性,它的值将是星期几的数字!

console.log(days["monday"]) //2

你也可以使用javascript的"indexOf"函数

var days  = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
console.log(days.indexOf('Sunday')); // return 0
console.log(days.indexOf('Tuesday')); // return 2

但请记住,"indexOf"是区分大小写的,如果字符串不在数组中,它将返回"-1"。

通常,对于这样的事情,您可能希望创建一个函数,这样您就不必重复自己(参见DRY)。下面是一个示例函数,它也将输入的星期日期字符串转换为小写,因此"Wednesday"将返回与"Wednesday"相同的结果。

<标题>代码(演示)

注意:带有函数文档的注释块使用JSDoc推荐的样式。

/**
 * @param {String} weekDay
 * @returns {Number} Day of week weekDay is. Returns `undefined` for invalid weekDay.
 */
function getWeekDayNumber(weekDay) {
    var days = {
        sunday: 1,
        monday: 2,
        tuesday: 3,
        wednesday: 4,
        thursday: 5,
        friday: 6,
        saturday: 7
    };
    return days[weekDay.toLowerCase()];
}
var day = getWeekDayNumber("Sunday"); // `day` now equals `1`