moment.js, как получить номер дня недели


100

У меня есть объект даты момента, и я хочу получить выбранный номер дня (0-6) или (1-7).

Я пробовал это, но не работает

var aaa = moment(date).day();

помогите мне с этим пожалуйста

Ответы:


143

Определите «не работает».

const date = moment("2015-07-02"); // Thursday Feb 2015
const dow = date.day();
console.log(dow);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

Это печатает «4», как и ожидалось.


56
Для любопытных: 02.07.2015 был четвергом. Значит, 0 -> воскресенье. Cheers
Sharukh Mastan 09

13
Важным моментом здесь является то, что это зависит от языкового стандарта, если ваш языковой стандарт установлен на страну, для которой понедельник является началом недели, 0 означает понедельник. - momentjs.com/docs/#/get-set/weekday
Кьелльски

4
использование, .isoWeekday()а затем преобразование в требуемый языковой стандарт - лучший выбор. Этот ответ хорош, если вы явно контролируете языковой стандарт в среде с несколькими
языками

95

Если вы специально ищете подход 1-7 ...

Это номер дня недели по ISO . moment.js также принял это во внимание. ИспользоватьisoWeekday()

console.log(moment().isoWeekday()); // returns 1-7 where 1 is Monday and 7 is Sunday
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

Учитывая, что я написал этот ответ во вторник, сегодня он дает мне 2.


7
Также работает добавление этого, чтобы получить DOW с воскресеньем в качестве дня 1, будет var dow = moment (). IsoWeekday ()% 7, где воскресенье равно 0.
Difinity


2

На странице документации обратите внимание на эти полезные заголовки

http://momentjs.com/docs/#/get-set/weekday/
(сначала я их не видел)

С разделами заголовка для:

  • Дата месяца
  • День недели
  • и т.д

.

  var now = moment();
  var day  = now.day();
  var date = now.date(); // Number

1

Вы можете получить это двумя способами, используя момент, а также используя Javascript

const date = moment("2015-07-02"); // Thursday Feb 2015
const usingMoment_1 = date.day();
const usingMoment_2 = date.isoWeekday();

console.log('usingMoment: date.day() ==> ',usingMoment_1);
console.log('usingMoment: date.isoWeekday() ==> ',usingMoment_2);


const usingJS= new Date("2015-07-02").getDay();
console.log('usingJavaSript: new Date("2015-07-02").getDay() ===> ',usingJS);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.