2013-11-24 3 views
1

У меня есть функция, с которой я хочу сортировать сообщения в блоге через месяц.JavaScript getMonth значение Дата

function sortBlogPostsAfterMonth(blogData) { 
    console.log(blogData[0].createdAt); 
    var blogDateFormat = new Date(blogData[0].createdAt); 
    console.log(blogDateFormat.getMonth()); 
} 

вывод в консоли в браузере это.

2013-11-24T11:32:29.023Z main.js:140 
10 

Почему я получаю 10-й месяц, а не 11?

Хорошие поздравления

+0

основной причиной является язык программирования начинается индекс от 0, означает, что январь не 1 но 0 – Sarath

+0

Возможный дубликат [Почему эта операция с датой (количество дней между двумя датами) возвращает это значение?] (http://stackoverflow.com/questions/7571977/why-this-operation-with-date-number- of-days-between-2-dates-return-this-value) –

ответ

1

даты Javascript являются. , , путают в лучшем случае (сломанный в худшем случае). Хотя дни и годы такие же (они начинаются с 1), месяцы индексируются по нулевой причине по какой-то причине. Подробнее здесь: http://www.w3schools.com/jsref/jsref_getmonth.asp

+0

Но когда я делаю blogDateFormat.getYear(), я получаю 113: x, так что это тоже ломается? – user2244925

+0

getYear() устарел. (И действительно, он возвращает 113. Вероятно, реликвия ошибки Y2K.) Вместо этого используйте getFullYear() (возвращает 2013). Вы можете проверить все методы Date здесь: http://www.w3schools.com/jsref/jsref_obj_date.asp – tandrewnichols

2

По умолчанию Javascript месяц начинается с 0 .Вы должны increement его one.Try это:

console.log(blogDateFormat.getMonth()+1); 
Смежные вопросы