Название дня с даты в JS

Мне нужно отобразить имя дня с датой (например, "05/23/2014" ), которую я получаю от третьего лица.

Я пробовал использовать Date, но я получаю только дату.

Каков правильный способ получить имя дня?

Ответ 1

Вы можете использовать метод Date.getDay(), который возвращает 0 для воскресенья, до 6 для субботы. Таким образом, вы можете просто создать массив с именем для имени дня:

var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var d = new Date(dateString);
var dayName = days[d.getDay()];

Здесь dateString - это строка, полученная от стороннего API.

В качестве альтернативы, если вам нужны первые 3 буквы имени дня, вы можете использовать встроенный toString метод Date:

var d = new Date(dateString);
var dayName = d.toString().split(' ')[0];

Это займет первое слово в выводе d.toString(), которое будет 3-буквенным именем дня.

Ответ 2

Ахум, три года спустя...

Почему никто не использует методы, предоставляемые стандартным классом Date в JavaScript (кроме Callum Linington)?

См. Https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

Получение названия дня из даты:

function getDayName(dateStr, locale)
{
    var date = new Date(dateStr);
    return date.toLocaleDateString(locale, { weekday: 'long' });        
}

var dateStr = '05/23/2014';
var day = getDayName(dateStr, "nl-NL"); // Gives back 'Vrijdag' which is Dutch for Friday.

Получение всех дней недели в массиве:

function getWeekDays(locale)
{
    var baseDate = new Date(Date.UTC(2017, 0, 2)); // just a Monday
    var weekDays = [];
    for(i = 0; i < 7; i++)
    {       
        weekDays.push(baseDate.toLocaleDateString(locale, { weekday: 'long' }));
        baseDate.setDate(baseDate.getDate() + 1);       
    }
    return weekDays;
}

var weekDays = getWeekDays('nl-NL'); // Gives back { 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag', 'zondag'} which are the days of the week in Dutch.

Для американских дат используйте "en-US" в качестве локали.

Ответ 3

let weekday = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][new Date().getDay()]

Ответ 4

var days = [
    "Sunday",
    "Monday",
    "...", //etc
    "Saturday"
];

console.log(days[new Date().getDay()]);

Просто прочитайте объект Date в руководстве JavaScript

Чтобы делать другие вещи с датой, например получать из нее читаемую строку, я использую:

var d = new Date();
d.toLocaleString();

Если вы просто хотите использовать время или дату:

d.toLocaleTimeString();
d.toLocaleDateString();

Вы можете проанализировать даты, выполнив:

var d = new Date(dateToParse);

или же

var d = Date.parse(dateToParse);

Ответ 5

используйте метод Date.toLocaleString():

new Date(dateString).toLocaleString('en-us', {weekday:'long'})

Ответ 6

вы можете использовать объект

var days = {
   'Mon': 'Monday',
   'etc..': 'etc..',
   'Fri': 'Friday'
}

var date = new Date().toString().split(' ')[0]; //get day abreviation first
console.log(days[date]);

Ответ 7

Не лучший метод, используйте массив. Это просто альтернативный метод.

http://www.w3schools.com/jsref/jsref_getday.asp

var date = new Date();
var day = date.getDay();

Вы действительно должны использовать Google, прежде чем публиковать здесь.

Поскольку другие люди разместили метод массива, я покажу вам альтернативный способ использования оператора switch.

switch(day) {
    case 0:
        day = "Sunday";
        break;
    case 1:
        day = "Monday";
        break;

    ... rest of cases

    default:
        // do something
        break;
}

Вышеприведенные работы, однако, являются лучшей альтернативой. Вы также можете использовать операторы if(), однако оператор switch будет намного чище, чем несколько if.

Ответ 8

Попробуйте использовать этот код:

var event = new Date();
var options = { weekday: 'long' };
console.log(event.toLocaleDateString('en-US', options));

это даст вам название дня в строковом формате.

Ответ 9

Посмотрите на это:

var event = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };

console.log(event.toLocaleDateString('de-DE', options));
// expected output: Donnerstag, 20. Dezember 2012

console.log(event.toLocaleDateString('ar-EG', options));
// expected output: الخميس، ٢٠ ديسمبر، ٢٠١٢

console.log(event.toLocaleDateString('ko-KR', options));
// expected output: 2012년 12월 20일 목요일

Источник: Mozilla Doc

Ответ 10

var day ;
    switch(new Date().getDay()){
        case 0:
        day="Sunday";
        break;
        case 1:
        day="Monday";
        break;
        case 2:
        day="Tuesday";
        break;
        case 3:
        day="wednesday";
        break;
        case 4:
        day ="Thurs day"
        break;
        case 5:
        day ="friday";
        break;
        case 6:
        day ="Satureday";
        break;

        }
        document.write(day);