Скільки днів має місяць

ПублікаціїДата і час

Отримати кількість днів у місяці в JavaScript не має стандартного метода у Date. Розглянемо способи отримання кількість днів у місяці.

Визначаємо кількість днів у місяці за номером місяця. Зверніть увагу що нумерація місяця починається з 1 до 12. Параметр year використовується для лютого місяця щоб взнати чи високосний рік чи ні. Якщо рік не було вказано тоді використовується теперішній рік.

function daysInMonth(month, year){ month=(month!=undefined?month:(new Date()).getMonth()+1); switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; break; case 4: case 6: case 9: case 11: return 30; break; case 2: var y=year?year:(new Date()).getFullYear(); return (y%4==0 && y%100!=0) || y%400==0 ?29:28; break; } } var d=daysInMonth(7); alert('Липень має днів: '+d);

Створимо метод в Date який повертає кількість днів у місяці за допомогою прототипу. Визначаємо кількість днів по номеру місяця з метода Date.getMonth().

Date.prototype.daysInMonth=function(){ switch(this.getMonth()){ case 0: case 2: case 4: case 6: case 7: case 9: case 11: return 31; break; case 3: case 5: case 8: case 10: return 30; break; case 1: var y=d.getFullYear(); return (y%4==0 && y%100!=0) || y%400==0 ?29:28; break; } } var d=new Date(); alert( 'в поточному місяці днів: '+d.daysInMonth() );

Вказати день 0 наступного місяця в методі Date.setDate().

Параметр month приймає номер місяці від 1 до 12.

function daysInMonth(month, year){ month=month+1; if(month>12)month=month-12; year=year!=undefined?year:(new Date().getFullYear()); var d=new Date(year+'-'+month+'-01'); d.setDate(0); return d.getDate(); } var d=daysInMonth(2); alert('Лютий має днів '+d);
Підрахувати різницю днів у місяці вказавши 1 число необхідного місяця і 1 число наступного місяця. function daysInMonth(month, year){ year=year!=undefined?year:(new Date().getFullYear()); var d1=new Date(year, month-1, 1); //month-1 так як вказується від 0 до 11 var d2=new Date(year, month, 1); //на 1 місяць більша дата return (d2.getTime()-d1.getTime())/86400000; //86400000 це 1000*3600*24 } var d=daysInMonth(1); alert('Січень має днів: '+d);
Адмін 2020-03-01 20:06:47

Тільки зареєстровані користувачі можуть писати коментарі.