.day()使用Moment.js返回错误的某一天

Yar*_*evi 41 javascript datetime momentjs

我使用Moment.js来解析字符串并分别获取日,月和年:

var date = moment("12-25-1995", "MM-DD-YYYY");
var day = date.day();        
Run Code Online (Sandbox Code Playgroud)

但是,day它不是25-it 1.什么是正确的API方法?

Dav*_*ret 87

正确使用的功能是.date():

date.date() === 25;
Run Code Online (Sandbox Code Playgroud)

.day()为您提供一周中的某一天.这类似于日期对象上的javascript .getDate().getDay()函数.

如果您想获得月份和年份,可以使用.month().year()函数.

  • date.month()返回11而不是12.它总是返回-1输入的月份. (3认同)
  • @YaronLevi是的,它是零索引.它在[文档](http://momentjs.com/docs/#/get-set/month/)中讨论了这个问题.javascript日期对象也是这样做的. (3认同)
  • 哇,真令人困惑。他们应该仅以“ day”表示日期,然后为“ dayOfMonth”单独设置一个。 (2认同)

小智 7

您可以使用moment().format('DD')来获取月份的日期。

var date = +moment("12-25-1995", "MM-DD-YYYY").format('DD'); 
// notice the `+` which will convert 
// the returned string to a number.
Run Code Online (Sandbox Code Playgroud)

祝你好运...


Séb*_*EMY 5

这如何获取部分日期:

var date = moment("12-25-1995", "MM-DD-YYYY");

if (date.isValid()) {

    day = date.date(); 
    console.log('day ' + day);

    month = date.month() + 1;
    console.log('month ' + month);

    year = date.year(); 
    console.log('year '+ urlDateMoment.year());

} else {
    console.log('Date is not valid! ');
}
Run Code Online (Sandbox Code Playgroud)