【发布时间】:2010-11-13 13:02:18
【问题描述】:
是否有使用 JavaScript 或 jQuery 确定星期几的方法?例如,如果用户在框中选择的日期是星期天,我可以提醒他们。
【问题讨论】:
标签: javascript jquery date
是否有使用 JavaScript 或 jQuery 确定星期几的方法?例如,如果用户在框中选择的日期是星期天,我可以提醒他们。
【问题讨论】:
标签: javascript jquery date
我刚刚在底部添加 hacktastic 奖励时找到了我最喜欢的方法。
new Date().toLocaleDateString('en', {weekday:'long'})
// returns "Thursday"
new Date().toLocaleDateString('en', {weekday:'short'})
// returns "Thu"
new Date().toLocaleDateString('es', {weekday:'long'})
// returns "jueves"
new Date().toLocaleDateString('es', {weekday:'short'})
// returns "jue."
new Date().toLocaleDateString('fr', {weekday:'long'})
// returns "jeudi"
new Date().toLocaleDateString('fr', {weekday:'short'})
// returns "jeu."
如果您在页面中只需要一次,请保持简单...
["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][(new Date()).getDay()]
我不认为延期会有什么大不了的事,但因为我在 cmets 中有 3 票支持国际化......
// dictionary version
({
es: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
en: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
})['en'][(new Date()).getDay()]
// returns "Wednesday"
// list version
langs=['en','es']
[
["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"],
["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
][langs.indexOf('es')][(new Date()).getDay()]
// returns "Miércoles"
最后,代码高尔夫版本...
["Sun","Mon","Tues","Wednes","Thurs","Fri","Satur"][(new Date()).getDay()]+"day"
Hacktastic 奖励... 如果您只关心缩写,则可以修剪其他所有内容。
new String(new Date()).replace(/ .*/,'')
// or
(''+new Date()).split(' ')[0]
// or
Date().slice(0,3)
【讨论】:
["Sun","Mon","Tues","Wednes","Thurs","Fri","Satur"][(new Date()).getDay()]+"day" 由于所有 7 个字符串都以相同的 3 个字母结尾,因此您可以提取它们而不是重复它们。
发送日期,您将获得该月同一天的位置。即 2018 年 2 月 15 日是第三个星期四。
/*return day postion and dayname */
function weekAndDay(date) {
var arrayWeek =[];
var date = new Date(date),
days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
prefixes = ['','First', 'Second', 'Third', 'Fourth', 'Fifth'];
if (date.getDate() % 7 == 0) {
var prefixes2 = date.getDate() / 7;
}else{
var prefixes2 = Math.ceil(date.getDate() / 7);
}
arrayWeek.push({
'dayPos' : prefixes[prefixes2] ,
'dayName' : days[date.getDay()]
});
return arrayWeek;
}
【讨论】:
today = new Date()
dayIndex = today.getDay()
...将为您提供“今天”的数字表示。
0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday
【讨论】:
new Date().getDay(); //0=Sun, 1=Mon, ..., 6=Sat
另请参阅:MDN 上的Javascript Date Object。
注意事项:这会在浏览器上返回星期几。由于地球不是平坦的,因此某些用户的星期几可能与您的服务器的星期几不同。这可能与您的项目相关,也可能不相关...
【讨论】:
更清晰更详细的答案:
var days = [
'SUN', //Sunday starts at 0
'MON',
'TUE',
'WED',
'THU',
'FRI',
'SAT'
];
d = new Date(); //This returns Wed Apr 02 2014 17:28:55 GMT+0800 (Malay Peninsula Standard Time)
x = d.getDay(); //This returns a number, starting with 0 for Sunday
alert (days[x]);
工作fiddle。
【讨论】:
如果您需要大量日期处理,请查看DateJS。
【讨论】: