Мне нужно отобразить имя дня с датой (например, "05/23/2014" ), которую я получаю от третьего лица.
Я пробовал использовать Date
, но я получаю только дату.
Каков правильный способ получить имя дня?
Мне нужно отобразить имя дня с датой (например, "05/23/2014" ), которую я получаю от третьего лица.
Я пробовал использовать Date
, но я получаю только дату.
Каков правильный способ получить имя дня?
Вы можете использовать метод 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-буквенным именем дня.
Ахум, три года спустя...
Почему никто не использует методы, предоставляемые стандартным классом Date в JavaScript (кроме Callum Linington)?
Получение названия дня из даты:
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" в качестве локали.
let weekday = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'][new Date().getDay()]
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);
используйте метод Date.toLocaleString():
new Date(dateString).toLocaleString('en-us', {weekday:'long'})
вы можете использовать объект
var days = {
'Mon': 'Monday',
'etc..': 'etc..',
'Fri': 'Friday'
}
var date = new Date().toString().split(' ')[0]; //get day abreviation first
console.log(days[date]);
Не лучший метод, используйте массив. Это просто альтернативный метод.
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.
Попробуйте использовать этот код:
var event = new Date();
var options = { weekday: 'long' };
console.log(event.toLocaleDateString('en-US', options));
это даст вам название дня в строковом формате.
Посмотрите на это:
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
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);