Подтвердить что ты не робот

Используйте jQuery/JS для определения ДНЯ НЕДЕЛИ

Есть ли метод, использующий JavaScript или jQuery, чтобы определить, какой это день недели? Например, если дата, которую пользователь выбирает в поле, - воскресенье, я могу предупредить их.

4b9b3361

Ответ 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;
    }