moment.js, bagaimana mendapatkan nomor hari dalam seminggu

100

Saya memiliki objek tanggal momen, dan ingin mendapatkan nomor hari yang dipilih (0-6) atau (1-7).

Saya mencoba ini, tetapi tidak berhasil

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

tolong bantu saya dengan ini

Dev
sumber

Jawaban:

143

Tentukan "tidak berhasil".

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>

Ini mencetak "4", seperti yang diharapkan.

c0xc
sumber
56
Bagi mereka yang penasaran, 2015-07-02 adalah hari Kamis. Artinya, 0 -> Minggu. Cheers
Sharukh Mastan
13
Hal yang penting di sini adalah bahwa ini bergantung pada lokal, jika lokal Anda disetel ke negara yang memiliki mondays sebagai awal minggu, 0 berarti monday. - momentjs.com/docs/#/get-set/weekday
Kjellski
4
menggunakan .isoWeekday()dan kemudian mengonversinya ke lokal yang dibutuhkan adalah pilihan yang lebih baik. Jawaban ini bagus jika Anda mengontrol lokal secara eksplisit dalam lingkungan multi-lokal
Fr0zenFyr
95

Jika Anda secara khusus mencari pendekatan 1-7 ...

Ini adalah angka hari kerja ISO . moment.js juga telah memperhitungkan hal ini. MenggunakanisoWeekday()

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>

Mengingat saya menulis jawaban ini pada hari Selasa, hari ini memberi saya 2.

mjohnsonengr.dll
sumber
7
Ini juga berfungsi menambahkan bahwa, untuk mendapatkan DOW dengan Minggu sebagai hari 1, akan menjadi var dow = moment (). IsoWeekday ()% 7 di mana Minggu adalah 0.
Selisih
23

Saya pikir ini akan berhasil

moment().weekday(); //if today is thursday it will return 4
Tarun Gupta
sumber
2

Dari halaman dokumen, perhatikan bahwa mereka memiliki header yang berguna ini

http://momentjs.com/docs/#/get-set/weekday/
(Saya tidak melihatnya pada awalnya)

Dengan bagian tajuk untuk:

  • Tanggal
  • Hari dalam seminggu
  • dll

.

  var now = moment();
  var day  = now.day();
  var date = now.date(); // Number
Gene Bo
sumber
1

Anda bisa mendapatkan ini dengan 2 cara menggunakan momen dan juga menggunakan 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>

Saurabh Mistry
sumber