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

时间:2014-05-13 20:03:27

标签: javascript

如何获得等效的整周天数,即monday2tuesday3wednesday到{{1}等等?

这就是我所拥有的:

4

我需要做

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

3 个答案:

答案 0 :(得分:4)

可以使用查找对象:

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

答案 1 :(得分: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”。

答案 2 :(得分:1)

通常,对于类似这样的事情,您可能希望创建一个函数,这样您就不必重复自己(请参阅DRY)。这是一个示例函数,也是converts the incoming week day string to lowercase所以“星期三”将返回与“星期三”相同的结果。

代码(demo

注意:带有功能文档的注释块使用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`