moment.js,如何获得星期数

Dev*_*Dev 82 date momentjs

我有一个时刻日期对象,想要获得所选的日期编号(0-6)或(1-7).

我试过这个,但它不起作用

var aaa= moment(date).day();
Run Code Online (Sandbox Code Playgroud)

请帮帮我

小智 123

定义"不起作用".

const date = moment("2015-07-02");
const dow = date.day();
console.log(dow);
Run Code Online (Sandbox Code Playgroud)

按预期打印"4".

  • 对于那些好奇的人,2015-07-02是星期四.意思是0 - >星期天.干杯 (48认同)
  • 这里重要的一点是,这是依赖于语言环境的,如果您的语言环境设置为星期一作为星期开始的国家/地区,则0表示星期一. - https://momentjs.com/docs/#/get-set/weekday/ (10认同)
  • 使用`.isoWeekday()`,然后转换为所需的语言环境是一个更好的选择。如果您在多语言环境中[显式控制语言环境](http://momentjs.com/docs/#/i18n/changing-locale/),则此答案很好。 (2认同)

mjo*_*ngr 76

如果你是专门寻找1-7方法......

这是ISO工作日编号.moment.js也考虑到了这一点.使用isoWeekday()

console.log(moment().isoWeekday()); // returns 1-7 where 1 is Monday and 7 is Sunday
Run Code Online (Sandbox Code Playgroud)

看到我在星期二写了这个答案,今天这给了我一个2.

  • 这也是有用的,为了得到周日为第1天的DOW,将是var dow = moment().isoWeekday()%7,其中星期日是0. (5认同)

Tar*_*pta 21

我认为这会奏效

moment().weekday(); //if today is thursday it will return 4
Run Code Online (Sandbox Code Playgroud)

  • 工作日是区域设置感知的,星期四可能是 3,具体取决于设置的区域设置。请参阅 https://momentjs.com/docs/#/get-set/weekday/ (3认同)

Sau*_*try 7

您可以使用 moment 和 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);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
Run Code Online (Sandbox Code Playgroud)