[英]How to get the day of the week from the day number in JavaScript?
给定的dayNumber
是从0
- 6
分别代表Monday
- Sunday
。
可以使用Date
/ String
对象从dayNumber
获取星期几吗?
一种更优雅的方式,如果您选择,还可以通过区域设置显示工作日,它可以启动最新版本的 ECMA 脚本并在所有最新的浏览器和 node.js 中运行:
console.log(new Date().toLocaleString('en-us', { weekday: 'long' }));
这将根据您传递的索引为您提供一天:
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]);
输出“今天是星期四”
您还可以使用getDay()
从 JavaScript 获取当前日期索引(但是在此方法中,星期日为 0,星期一为 1,等等):
var d=new Date();
console.log(d.getDay());
星期一时输出 1。
此代码是上面给出的修改版本。 它返回代表日期的字符串
/**
* 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"
/**
* 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);
}
这将添加一个 getDayOfWeek() 函数作为 JavaScript Date 类的原型。
Date.prototype.getDayOfWeek = function(){
return ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][ this.getDay() ];
};
第一个解决方案非常简单,因为我们只使用getDay()来获取星期几,从0
(星期日)到6
(星期六)。
var dayOfTheWeek = (day, month, year) => { const weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; return weekday[new Date(`${month}/${day}/${year}`).getDay()]; }; console.log(dayOfTheWeek(3, 11, 2020));
第二种解决方案是toLocaleString()内置方法。
var dayOfTheWeek = (day, month, year) => { return new Date(year, month - 1, day).toLocaleString("en-US", { weekday: "long", }); }; console.log(dayOfTheWeek(3, 11, 2020));
第三种解决方案基于Zeller 的同余。
function zeller(day, month, year) { const weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; if (month < 3) { month += 12; year--; } var h = (day + parseInt(((month + 1) * 26) / 10) + year + parseInt(year / 4) + 6 * parseInt(year / 100) + parseInt(year / 400) - 1) % 7; return weekday[h]; } console.log(zeller(3, 11, 2020));
let today= new Date()
//Function To Convert Day Integer to String
function daysToSrting() {
const daysOfWeek = ['Sunday', 'Monday','Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
return daysOfWeek[today.getDay()]
}
console.log(daysToSrting())
let weekday = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][new Date().getDay()]; console.log(weekday)
只需使用图书馆moment
。
const moment = require('moment')
console.log(moment(person.dateOfBirth,'DD.MM.YYYY').format("dddd {d}"))
输出:
Monday {1}
如果需要,可以通过使用Intl.DateTimeFormat
和 options 参数来获取一天的全名(例如“Monday”)。
var Xmas95 = new Date('December 25, 1995 23:15:30');
var options = { weekday: 'long'};
console.log(new Intl.DateTimeFormat('en-US', options).format(Xmas95));
// Monday
console.log(new Intl.DateTimeFormat('de-DE', options).format(Xmas95));
// Montag
只是为了增加我的两分钱......时刻(这可能不是最好的库选项)有一个方法:
moment.weekdays(1) // Monday
moment.weekdaysShort(1) //Mon
顺便说一句,它依赖于语言环境,因此它会为您提供语言集中的名称,这就是我选择此选项的原因。
如果有任何Angular用户,有一个管道可以实现这一点。
{{yourDate | date:'EEEE'}}
const language = 'en-us';
const options = { weekday: 'long' };
const today = new Date().toLocaleString(language, options)
cosnsole.log(today)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.