Есть ли метод, использующий JavaScript или jQuery, чтобы определить, какой это день недели? Например, если дата, которую пользователь выбирает в поле, - воскресенье, я могу предупредить их.
Используйте jQuery/JS для определения ДНЯ НЕДЕЛИ
Ответ 1
new Date().getDay(); //0=Sun, 1=Mon, ..., 6=Sat
См. также: Объект Date Javascript в MDN.
Слово предостережения:. Это возвращает день недели в браузере. Поскольку земля не плоская, день недели для некоторых пользователей может отличаться от дня недели для вашего сервера. Это может быть или не иметь отношения к вашему проекту...
Если вы много работаете с датой, вы можете захотеть просмотреть библиотеки дат JavaScript, например Datejs или Moment.js
Ответ 2
Обновление
Я только что нашел свой любимый метод, добавив хакстический бонус внизу.
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()]
Я не думал, что это будет так важно, но у меня есть 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 Bonus... Если вы заботитесь только об аббревиатуре, вы можете обрезать все остальное.
new String(new Date()).replace(/ .*/,'')
// or
(''+new Date()).split(' ')[0]
// or
Date().slice(0,3)
Ответ 3
today = new Date()
dayIndex = today.getDay()
... вы получите числовое представление "сегодня".
0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday
Ответ 4
Более четкий и подробный ответ:
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.
Ответ 5
Если вам нужна большая обработка даты, посмотрите DateJS.
Ответ 6
отправьте дату, и вы получите позицию того же дня этого месяца. т.е. 15/02/2018 это третий четверг.
/*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;
}