随意输入两个第三个就出来了,比如 输入了开工、竣工,会自动出来工期。
注:2016-07-07~2016-07-08是2天。
HTML:
//开工时间
<input type="text" class="form-control laydate-icon"
id="begin_date" name=begin_date">
//竣工时间
<input type="text" class="form-control laydate-icon"
id="end_date" name="end_date">
//工期
<input type="text" class="form-control" id="duration"
name="duration" oninput="getRealEndDate()">
JS:
//回显总工期
$("#end_date").click(function(){
laydate({
elem: '#end_date',
choose: function(datas){ //选择日期完毕的回调
//拿到计划开工时间
var BeginDate = $("#begin_date").val();
if(BeginDate != null && BeginDate != ""){
//拿到计划竣工时间
var EndDate = $("#end_date").val();
//掉用计算日期天数并回显到计划总工期
DateDiff(EndDate,BeginDate);
}
}
});
});
$("#begin_date").click(function(){
laydate({
elem: '#begin_date',
choose: function(datas){ //选择日期完毕的回调
//拿到计划竣工时间
var EndDate = $("#end_date").val();
if(EndDate != null && EndDate != ""){
//拿到计划开工时间
var BeginDate = $("#begin_date").val();
//掉用计算日期天数并回显到计划总工期
DateDiffd(BeginDate,EndDate);
}
}
});
});
//计算riqi天数差
function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2006-12-18格式
var aDate, oDate1, oDate2, iDays
aDate = sDate1.split("-")
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2006格式
aDate = sDate2.split("-")
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
iDays = parseInt((oDate1 - oDate2) / 1000 / 60 / 60 /24) + 1 //把相差的毫秒数转换为天数
$('#duration').val(iDays);
}
function DateDiffd(sDate1, sDate2){ //sDate1和sDate2是2006-12-18格式
var aDate, oDate1, oDate2, iDays
aDate = sDate1.split("-")
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2006格式
aDate = sDate2.split("-")
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
iDays = parseInt((oDate2 - oDate1) / 1000 / 60 / 60 /24) + 1 //把相差的毫秒数转换为天数
$('#duration').val(iDays);
}
//显示日历
$("#begin_date").click(function(){
laydate();
})
$("#end_date").click(function(){
laydate();
})
//回显竣工时间
function getEndDate(){
if(document.getElementById("duration").value!=''){
//拿到计划开工时间
var BeginDate = $("#begin_date").val();
//拿到计划总工期
var Duration = $("#duration").val();
//掉用计算日期天数并回显到计划总工期
getNewDay(BeginDate,Duration);
}
}
//dateTemp 需要参加计算的日期,days要添加的天数,返回新的日期,日期格式:YYYY-MM-DD
function getNewDay(dateTemp, days) {
var dateTemp = dateTemp.split("-");
var nDate = new Date(dateTemp[1] + '-' + dateTemp[2] + '-' + dateTemp[0]); //转换为MM-DD-YYYY格式
var millSeconds = Math.abs(nDate) + (days * 24 * 60 * 60 * 1000);
var rDate = new Date(millSeconds);
var year = rDate.getFullYear();
var month = rDate.getMonth() + 1;
if (month < 10) month = "0" + month;
var date = rDate.getDate();
if (date < 10) date = "0" + date;
var EndDate = (year + "-" + month + "-" + date);
$("#end_date").val(EndDate);
}