/**
* 1.日期格式化 new Date().Format("yyyy-MM-dd");
*
* 2.获取两个日期的相差天数 getDateDifference("2020-03-02","2020-07-01");
*
* 3.获取指定日期的前一天 getYesterdayDate("2020-03-01");
*
* 4.获取日期所在月份的天数 getMonthDays("2020-02-01");
*
* 5.获取指定日期的上个月相同日期 getPreMonth("2020-02-01");
*
* 6.获取指定日期的下个月相同日期 getNextMonth("2020-02-01");
*
*/
/**
* javascript Date format(js日期格式化)
* 对Date的扩展,将 Date 转化为指定格式的String
月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
例子:
(new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
(new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
* 调用:
var time1 = new Date().Format("yyyy-MM-dd");
var time2 = new Date().Format("yyyy年MM月dd日 HH:mm:ss");
*/
Date.prototype.format = function (format) {
// 默认格式:"yyyy-MM-dd hh:mm:ss"
if (!format) {
format = "yyyy-MM-dd hh:mm:ss";
}
var date = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //天
"h+": this.getHours(), //小时
"H+": this.getHours(), //小时(大写)
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S+": this.getMilliseconds() //毫秒
};
if (/(y+)/i.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (var k in date) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1
? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
}
}
return format;
}
/**
* 获取两个日期的相差天数
* @param sDate1 格式yyyy-MM-dd
* @param sDate2 格式yyyy-MM-dd
* @returns {number}
*/
function getDateDifference(sDate1, sDate2) {
var dateSpan, iDays;
sDate1 = Date.parse(sDate1); // 返回 1970/1/1 午夜距离该日期时间的毫秒数
sDate2 = Date.parse(sDate2);
dateSpan = Math.abs(sDate2 - sDate1);
iDays = Math.floor(dateSpan / (24 * 3600 * 1000));
return iDays
}
/**
* 获取指定日期的前一天
* @param date
* @returns {string}
*/
function getYesterdayDate(date) {
var d = new Date(date);
d = +d - 1000 * 60 * 60 * 24;
d = new Date(d);
var month = d.getMonth() + 1;
var strDate = d.getDate();
if (month >= 1 && month <= 9) {
month = "0" + month;
}
if (strDate >= 0 && strDate <= 9) {
strDate = "0" + strDate;
}
return d.getFullYear() + "-" + month + "-" + strDate;
}
/**
* 获取日期所在月份的天数
* @param date 格式yyyy-MM-dd
* @returns {number}
*/
function getMonthDays(date){
var dateArr = date.split('-');
var d = new Date(dateArr[0], dateArr[1], 0);
return d.getDate();
}
/**
* 获取指定日期的上个月相同日期
* @param date
* @returns {string}
*/
function getPreMonth(date) {
var arr = date.split('-');
var year = arr[0]; //获取当前日期的年份
var month = arr[1]; //获取当前日期的月份
var day = arr[2]; //获取当前日期的日
var days = new Date(year, month, 0);
days = days.getDate(); //获取当前日期中月的天数
var year2 = year;
var month2 = parseInt(month) - 1;
if (month2 == 0) {
year2 = parseInt(year2) - 1;
month2 = 12;
}
var day2 = day;
var days2 = new Date(year2, month2, 0);
days2 = days2.getDate();
if (day2 > days2) {
day2 = days2;
}
if (month2 < 10) {
month2 = '0' + month2;
}
var t2 = year2 + '-' + month2 + '-' + day2;
return t2;
}
/**
* 获取指定日期的下个月相同日期
* @param date
* @returns {string}
*/
function getNextMonth(date) {
var arr = date.split('-');
var year = arr[0]; //获取当前日期的年份
var month = arr[1]; //获取当前日期的月份
var day = arr[2]; //获取当前日期的日
var days = new Date(year, month, 0);
days = days.getDate(); //获取当前日期中的月的天数
var year2 = year;
var month2 = parseInt(month) + 1;
if (month2 == 13) {
year2 = parseInt(year2) + 1;
month2 = 1;
}
var day2 = day;
var days2 = new Date(year2, month2, 0);
days2 = days2.getDate();
if (day2 > days2) {
day2 = days2;
}
if (month2 < 10) {
month2 = '0' + month2;
}
var t2 = year2 + '-' + month2 + '-' + day2;
return t2;
}
js日期处理函数 日期格式化 当前日期 日期相差天数等
最新推荐文章于 2025-05-17 19:54:56 发布