Как получить день недели полностью? - PullRequest
1 голос
/ 22 мая 2019

Как получить дни недели полностью?

Вот мой код:

var date = new Date();

var n = date.toDateString();

Я ожидаю, что результат покажет Wednesday, May 22 2019 но это показывает: Wed May 22 2019

Ответы [ 5 ]

1 голос
/ 22 мая 2019

Объект Date по умолчанию в JavaScript имеет ограниченную поддержку форматирования в методе toLocaleDateString(): Date .prototype .toLocale Date String () - JavaScript | MDN

Существуют некоторые ограничения (например, не все функции поддерживаются в некоторых мобильных браузерах), но стоит посмотреть, есть ли у вас что-то, что вы можете использовать, прежде чем изобретать колесо.

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

var today = new Date();
var formatOptions = {weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };

console.log(today.toLocaleDateString('en-US', formatOptions));
1 голос
/ 22 мая 2019

class Foo {
    getFormattedDate() {  
      const date = new Date();
      const dateFormatOptions = { 
        weekday: 'long', 
        year: 'numeric', 
        month: 'long', 
        day: 'numeric' 
      };
      return date.toLocaleDateString('en-GB', dateFormatOptions);
    }
}

const foo = new Foo();
console.log(foo.getFormattedDate())

Это то, что вы могли бы сделать. Преимущество этого решения в том, что вы можете легко добавлять различные поддерживаемые локали.

0 голосов
/ 22 мая 2019

В объекте javascript Date вы можете получить целочисленное значение, представляющее определенный день, только с помощью метода getDay().Что вы можете сделать, это расширить Date.prototype, создав пользовательский метод для Date.prototype, например:

Date.prototype.getFullDayName = function(){

    var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
    var fullDay = this.toDateString().replace(/.+?\s/,days[this.getDay()]+" ")
    return fullDay
}

Вышеуказанный метод даст вам полное имя дня из вашего объекта date. Затем вызовите егокак

 date.getFullDayName()
 // "Thursday May 23 2019"
0 голосов
/ 22 мая 2019

Вы можете использовать библиотеку moment.js для достижения этого формата даты.

Этот фрагмент кода выведет на консоль дату в запрошенном вами формате (в случае, если вы загрузили и импортировали moment.js).

dddd представляет полное имя дня недели

const start = moment('2016-02-27');
console.log(start.format('dddd YYYY MM DD'));

> Output : "Saturday 2016 02 27"
0 голосов
/ 22 мая 2019

Если вам не нравятся сокращения, вы должны создать свою собственную строку из информации, которую предоставляет объект Date.К сожалению, он просто возвращает целые числа от 0 до 6 для дня недели и от 0 до 11 для месяца - поэтому вам нужно настроить массив с совпадающими именами.

Вот пример:

var now = new Date();
var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
var months = ["January", "February", "March", "April", "May", "June", "July", "October", "November", "December"];
console.log(days[now.getDay()] + ", " + months[now.getMonth()] + " " + now.getDate() + " " + now.getFullYear());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...