moment.js, як отримати номер дня тижня


99

У мене є об’єкт дати моменту, і я хочу отримати вибраний номер дня (0-6) або (1-7).

Я спробував це, але це не працює

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

допоможіть мені в цьому, будь ласка

Відповіді:


142

Визначте "не працює".

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".


54
Для тих, хто цікавиться, 02.07.2015 був четвергом. Значення, 0 -> неділя. Привітання
Sharukh Мастаі

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

4
.isoWeekday()найкращим вибором є використання, а потім перетворення на необхідну локаль. Ця відповідь хороша, якщо ви явно контролюєте локаль у багатомовному середовищі
Fr0zenFyr

93

Якщо ви спеціально шукаєте підхід 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.


6
Це також робота, додаючи, що, щоб отримати 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.