$(document).ready(function () { //獲取單元格值改變事件不需要獲取焦點 //備注:可以換成 $(".CheckCountLen").bind("blur", function () { $("#butOK").bind("click", function () { //判斷開始時間和結束時間 var strStartTime = $("#fStarttime").val(); var endTime = $("#fEndtime").val(); if (strStartTime == "" || endTime == "") { $("#DifDay").val(0); } else { var startNum = parseInt(strStartTime.replace(/-/g, ''), 10); var endNum = parseInt(endTime.replace(/-/g, ''), 10); if (startNum > endNum) { alert("結束時間不能在開始時間之前!"); } else { $("#DifDay").val(DateDiff(strStartTime, endTime)); //調用/計算兩個日期天數差的函數,通用 } } }); //根據填寫相差天數獲取結束日期 $("#butOK1").bind("click", function () { //判斷開始時間和結束時間 var strStartTime = $("#fStarttime").val(); var inputNum = $("#inputNum").val(); //獲取相差天數 if (strStartTime != "") { } $("#fEndtime").val(addByTransDate(strStartTime, inputNum)); //根據指定的一個日期和相差的天數,獲取另外一個日期 }); }); //////////////////////////////////////////////////////////////////////////////////////////// //計算兩個日期天數差的函數,通用 //////////////////////////////////////////////////////////////////////////////////////////// function DateDiff(sDate1, sDate2) { //sDate1和sDate2是yyyy-MM-dd格式 var aDate, oDate1, oDate2, iDays; aDate = sDate1.split("-"); oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); //轉換為yyyy-MM-dd格式 aDate = sDate2.split("-"); oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24); //把相差的毫秒數轉換為天數 return iDays; //返回相差天數 } //////////////////////////////////////////////////////////////////////////////////////////// //根據指定的一個日期和相差的天數,獲取另外一個日期 //dateParameter為指定已經存在的日期yyyy-MM-dd num為相差天數為整型 //////////////////////////////////////////////////////////////////////////////////////////// function addByTransDate(dateParameter, num) { var translateDate = "", dateString = "", monthString = "", dayString = ""; translateDate = dateParameter.replace("-", "/").replace("-", "/"); ; var newDate = new Date(translateDate); newDate = newDate.valueOf(); newDate = newDate + num * 24 * 60 * 60 * 1000; //備注 如果是往前計算日期則為減號 否則為加號 newDate = new Date(newDate); //如果月份長度少於2,則前加 0 補位 if ((newDate.getMonth() + 1).toString().length == 1) { monthString = 0 + "" + (newDate.getMonth() + 1).toString(); } else { monthString = (newDate.getMonth() + 1).toString(); } //如果天數長度少於2,則前加 0 補位 if (newDate.getDate().toString().length == 1) { dayString = 0 + "" + newDate.getDate().toString(); } else { dayString = newDate.getDate().toString(); } dateString = newDate.getFullYear() + "-" + monthString + "-" + dayString; return dateString; }