-> 快速使用
/**
* [dateAddDays 从某个日期增加n天后的日期]
* @param {[string]} dateStr [日期字符串]
* @param {[int]} addTime [增加的秒数]
* @param returnFormat "yyyy-MM-dd HH:mm:ss" // "yyyy-MM-dd"
* @return {[string]}[增加n天后的日期字符串]
*/
function dateAddDays(dateStr,addTime,returnFormat) {
var tempDate=new Date(dateStr.replace(/-/g,"/"));//把日期字符串转换成日期格式
tempDate=tempDate/1000+addTime
var resultDate=new Date(tempDate*1000);//增加n天后的日期
return resultDate.dateFormat(returnFormat);
}
/**
*对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") ==> 2020-07-07 08:09:04.423
*(new Date()).Format("yyyy-M-d h:m:s.S") ==> 2020--7-7 8:9:4.18
*/
Date.prototype.dateFormat = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"H+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth()+3)/3),
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
-> 具体使用
一般地,我们使用上述函数方法做日期的增减,多数都是为了选择第一个日期后,为其他日期做计算,然后回显到页面。
这时,我们就需要先获取到第一个日期时间,计算后得到第二、第三个时间,最后回显到页面
注: 在此之前,先引入上述的方法函数
<script type="text/javascript">
$(function(){ // 当页面加载完
/*
* 修改时间
*/
$("#id377118417").blur(function() { // 获取第一个时间的id(点击事件)
var startDate =$(this).val();
if(startDate==""){
return;
}
// 公告截止时间根据开始时间自动添加20自然日
var addEndTime=20*24*3600;
var ggEndDate=dateAddDays(startDate,addEndTime,"yyyy-MM-dd HH:mm");
var ggEndDateTemp = ggEndDate.substring(0, 10);
// 截止时间自动设置开始公告的第1日到公告结束前1日下午5点
addEndTime=-24*3600+17*3600;
var sgEndDate=dateAddDays(ggEndDateTemp,addEndTime,"yyyy-MM-dd HH:mm");
$("#id377118918").val(ggEndDate); // 获取公告截止时间id,回显页面
$("#id377119820").val(sgEndDate); // 获取截止时间id,回显页面
});
}
</script>
注: "快速使用"中 的计算日期的方法函数,核心使用需要计算好毫秒值再转换成需要的日期时间。
End...