moment.js,如何获取星期几


99

我有一个时刻日期对象,并且想要获取所选的天数(0-6)或(1-7)。

我试过了,但是没用

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

请帮我

Answers:


141

定义“无效”。

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
对于那些好奇的人,2015-07-02是一个星期四。含义是0->周日。欢呼声
Sharukh Mastan,

13
这里重要的一点是,这取决于语言环境,如果您的语言环境设置为以星期一为一周开始的国家/地区,则0表示星期一。- momentjs.com/docs/#/get-set/weekday
Kjellski

4
使用.isoWeekday()然后转换为所需的语言环境是更好的选择。如果您在多语言环境中显式控制语言环境,则此答案很好
Fr0zenFyr

92

如果您正在寻找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,即为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>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.