Intl.DateTimeFormat() - 以数字形式返回工作日?

问题描述 投票:0回答:1

看来 Intl.DateTimeFormat() 只接受

"narrow", "short", "long"
作为
weekday
选项。我希望它能以
number
的形式返回。即周日 = 0,周一 = 1,依此类推。如果我正确地理解“数字”不是一个选项,那么将工作日值返回为数字的简单方法是什么?

const day = new Intl.DateTimeFormat('en-US', {
    timeZone: America/New_York,
    weekday: 'long',
});

const weekdayNumber = ["0", "1", "2", "3", "4", "5", "6"];
const dayNumber = weekdayNumber[day.format(now)];
console.log('Weekday: ' + dayNumber); // returns error
javascript datetime
1个回答
-1
投票

简单的方法是

Date.prototype.getDay()

const dayNumber = new Date().getDay();

console.log(dayNumber);

如果您想使用某些东西来“查找”,这将是获取工作日作为数字的一种方法:

const day = new Intl.DateTimeFormat('en-US', {
    timeZone: 'America/New_York',
    weekday: 'long',
});

const weekdays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
const dayNumber = weekdays.indexOf(day.format(Date.now()));

console.log(dayNumber);

© www.soinside.com 2019 - 2024. All rights reserved.