moment.js, cách lấy số ngày trong tuần


99

Tôi có một đối tượng ngày tháng và muốn lấy số ngày đã chọn (0-6) hoặc (1-7).

Tôi đã thử điều này, nhưng nó không hoạt động

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

Giúp tôi với điều này xin vui lòng

Câu trả lời:


141

Xác định "không hoạt động".

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>

Điều này in ra "4", như mong đợi.


54
Đối với những người tò mò, 2015-07-02 là một ngày Thứ Năm. Có nghĩa là, 0 -> Chủ nhật. Chúc mừng
Sharukh Mastan

13
Điều quan trọng ở đây là điều này phụ thuộc vào ngôn ngữ, nếu ngôn ngữ của bạn được đặt thành quốc gia có thứ hai là đầu tuần, 0 có nghĩa là thứ hai. - momentjs.com/docs/#/get-set/weekday
Kjellski

4
sử dụng .isoWeekday()và sau đó chuyển đổi sang ngôn ngữ cần thiết là một lựa chọn tốt hơn. Câu trả lời này là tốt nếu bạn kiểm soát miền địa phương một cách rõ ràng trong một môi trường locale đa
Fr0zenFyr

92

Nếu bạn đang tìm kiếm cụ thể cách tiếp cận 1-7 ...

Đây là số ISO trong tuần . moment.js cũng đã tính đến điều này. Sử dụngisoWeekday()

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>

Khi tôi viết câu trả lời này vào thứ Ba, hôm nay câu trả lời này mang lại cho tôi 2 điểm.


6
Nó cũng làm việc thêm rằng, để có được những DOW với Chủ Nhật là ngày 1, sẽ là var dow = khoảnh khắc () isoWeekday ()% 7 nơi Chúa nhật là 0..
Difinity

23

Tôi nghĩ điều này sẽ hiệu quả

moment().weekday(); //if today is thursday it will return 4

2

Từ trang tài liệu, hãy lưu ý rằng chúng có các tiêu đề hữu ích này

http://momentjs.com/docs/#/get-set/weekday/
(Tôi không nhìn thấy chúng lúc đầu)

Với các phần tiêu đề cho:

  • Ngày tháng
  • Ngày trong tuần
  • Vân vân

.

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

1

Bạn có thể nhận được điều này theo 2 cách bằng cách sử dụng moment và cả 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>

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.