-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
获取某个月份有多少天是个很实用的技巧,做日历相关的组件或插件时很常见。
/**
* 获取当前月份有多少天
* @param {string | number} [dateStr] - 日期字符串,选填。格式:yyyy-MM-dd 或 yyyy/MM/dd 或 UTC 毫秒数
* @return {number} 指定月份的天数,若 dateStr 为空,则返回当前月的天数
*/
function getCurMonthDays(dateStr) {
var date = new Date();
var lastDate;
if (
typeof dateStr === 'number' ||
(typeof dateStr === 'string' && dateStr.trim())
) {
date = new Date(dateStr)
}
lastDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);
return lastDate.getDate();
}测试用例:
const test = [
{
it: '2019-08-22',
expect: 31
}, {
it: '2019-02-12',
expect: 28
}, {
it: '2019-12-31',
expect: 31
}, {
it: '2019-01-30',
expect: 31
}
];
test.map(item => {
const result = getCurMonthDays(item.it);
const isPassed = result === item.expect;
console.group(result);
isPassed ? console.log('%c√ Pass', 'color: green') :
console.log('%c× Failed', 'color: red');
console.groupEnd();
});Metadata
Metadata
Assignees
Labels
No labels