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

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.


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.


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

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

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>

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.