共计 2354 个字符,预计需要花费 6 分钟才能阅读完成。
日期处理函数工具封装
判断润年
/**
* 判断润年
* @param {string} year 年份
* @return {Boolean}
*/
export const isLeap = function (year) {if ((year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)) {return true}
return false
};
获取星期
/**
* 获取星期
* @param {string} date 日期
* @return {string} 星期
*/
export const getWeek = function (date) {let Stamp = new Date(date)
// return weeks[Stamp.getDay()];
let weeks = ['日','一','二','三','四','五','六'];
return weeks[Stamp.getDay()];
};
获取月份天数
/**
* 获取月份天数
* @param {string} year 年份
* @param {string} month 月份
* @return {number} 月份天数
*/
export const getMonthDays = function (year, month) {month = parseInt(month) - 1
if (month < 0 || month > 11) return ''
let months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (this.isLeap(year)) {months[1] = 29
}
return months[month]
};
数字补零
用于格式化日期
/**
* 数字补零
* @param {string} str
* @return {string}
*/
export const zero = function (str) {str = parseInt(str)
return str > 9 ? str : '0' + str
};
获取明天日期
/**
* 获取明天日期
* @param {string} str 日期格局
* @return {string} 格式化日期
*/
export const getToday = function (str) {const date = new Date();
const year = date.getFullYear(),
month = zero(date.getMonth() + 1),
day = zero(date.getDate()),
hour = zero(date.getHours()),
minute = zero(date.getMinutes()),
second = zero(date.getSeconds());
let res = '';
switch (str){
case "yyyy-mm-dd":
res = year + '-' + month + '-' + day;
break;
case "mm-dd-yyyy":
res = month + '-' + day + '-' + year;
break;
case "yyyy-mm-dd hh:MM:ss":
res = year + '-' + month + '-' + day + '' + hour +':'+ minute +':' + second;
break;
case "hh:MM:ss":
res = hour + ':' + minute + ':' + second;
break;
case "yyyy":
res = year;
break;
case "mm-dd":
res = month + '-' + day;
break;
default:
res = '参数谬误';
break;
}
return res;
}
获取上一天日期
/**
* 获取上一天日期
* @param {string} str 以后日期
* @return {string} 上一天日期
*/
export const getYesterday = function (str) {let date = str.split('-');
let year = parseInt(date[0]),
month = parseInt(date[1]),
day = parseInt(date[2]);
if(month > 12 || month < 1 || day > getMonthDays(year,month)) return '日期不非法';
day -= 1;
if(day > 0){return year + '-' + zero(month) + '-' + zero(day);
}
month -= 1;
if(month > 0){return year + '-' + zero(month) + '-' + getMonthDays(year,month);
}
year -= 1;
return year + '-' + 12 + '-' + getMonthDays(year,12);
};
获取下一天日期
/**
* 获取下一天日期
* @param {string} str 以后日期
* @return {string} 下一天日期
*/
export const getTomorrow = function (str){let date = str.split('-');
let year = parseInt(date[0]),
month = parseInt(date[1]),
day = parseInt(date[2]);
if(month > 12 || month < 1 || day > getMonthDays(year,month)) return '日期不非法';
day += 1;
if(day <= getMonthDays(year,month)){return year + '-' + zero(month) + '-' + zero(day);
}
month += 1;
if(month < 13){return year + '-' + zero(month) + '-' + '01';
}
year += 1;
return year + '-' + '01' + '-' + '01';
}
todo
获取以后周数
补充
还有什么须要补充的能够在评论中通知我。
正文完
发表至: javascript
2021-09-30