如何从 JavaScript 中的天数获取星期几?

IT技术 javascript string date
2021-02-25 02:22:20

给定的分别dayNumber来自0-6代表Monday- Sunday

可以使用Date/String对象来获取星期几dayNumber吗?

6个回答

一种更优雅的方式,如果您选择,还可以按区域设置显示工作日,可用于启动最新版本的 ECMA 脚本,并在所有最新浏览器和 node.js 中运行:

console.log(new Date().toLocaleString('en-us', {  weekday: 'long' }));
可能想要使用navigator.language而不是'en-us'. 因此,用户以她选择的语言获得她的星期一。
2021-04-21 02:22:20
@omer,您是否碰巧向节点团队提出了问题?我认为我们都可以从这种更快的工作中受益,并且不会出现内存泄漏。
2021-04-29 02:22:20
只是对使用它的任何人的警告,它运行良好,但这是一种非常繁重的方法。仅当您需要转换的日期很少时才使用它,而不是在服务器端 nodejs 应用程序上使用。如果您在 10k 日期上运行它,则需要很长时间并且存在内存泄漏。
2021-05-11 02:22:20
对于性能,MDN 作者建议:“在格式化大量日期时,最好创建一个 Intl.DateTimeFormat 对象并使用其格式属性提供的函数。” 来源:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
2021-05-16 02:22:20
不,我还没有,但我现在打开它,好主意。我设法用一个运行 10k 次的简单 while 循环来重现它。我不确定它是否真的是一个错误,或者只是这个功能在这个特定用例中占用大量资源。
2021-05-21 02:22:20

这将根据您通过的索引为您提供一天:

var weekday=new Array(7);
weekday[0]="Monday";
weekday[1]="Tuesday";
weekday[2]="Wednesday";
weekday[3]="Thursday";
weekday[4]="Friday";
weekday[5]="Saturday";
weekday[6]="Sunday";
console.log("Today is " + weekday[3]);

输出“今天是星期四”

您还可以使用 JavaScript 获取当前天数索引getDay()(但是在此方法中,星期日为 0,星期一为 1 等):

var d=new Date();
console.log(d.getDay());

星期一时输出 1。

var dayOfWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
2021-05-16 02:22:20

此代码是上面给出的修改版本。它返回代表日期的字符串

/**
* Converts a day number to a string.
*
* @param {Number} dayIndex
* @return {String} Returns day as string
*/
function dayOfWeekAsString(dayIndex) {
  return ["Sunday", "Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][dayIndex] || '';
}

例如

dayOfWeekAsString(0) returns "Sunday"
这是不正确的,因为getDay()实现始于Sunday应该是: return ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][dayIndex];
2021-05-14 02:22:20
/**
* I convert a day string to an number.
*
* @method dayOfWeekAsInteger
* @param {String} day
* @return {Number} Returns day as number
*/
function dayOfWeekAsInteger(day) {
  return ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"].indexOf(day);
}

这将向 JavaScript Date 类添加一个 getDayOfWeek() 函数作为原型。

Date.prototype.getDayOfWeek = function(){   
    return ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][ this.getDay() ];
};