首先,我們模擬一個例子
引入js文件
<script type="text/javascript" src="jquery.min.js"></script>
html頁面如下:
<body> <div> 請輸入第一個日期:<input type="date" id="Date1" /> <br/> 請輸入第二個日期:<input type="date" id="Date2" /> <br/> 請輸入日期相差數: <input type="text" id="differ" />(參數:1:相差天數,2:相差小時數,3:相差分鍾數,4:相差毫秒數) <br/> <input type="button" value="調用測試" onclick="TestClick()" /> </div> </body>
js中的方法如下:
<script>
//獲取當前日期
var getNowDate = function () {
var d = new Date();
var year = d.getFullYear();
var month = d.getMonth() + 1;
var day = d.getDate();
var dateStr = year + '-' + getFormatDate(month) + '-' + getFormatDate(day);
return dateStr;
}
//格式化日期的月份或天數的顯示(小於10,在前面增加0)
function getFormatDate(value) {
var result;
result = value < 10 ? ("0" + value) : value;
return result;
}
//獲取與毫秒數的轉化比例(相差天數:1,相差小時數:2,相差分鍾數:3,相差秒數:4)
var getDifferScale = function (value) {
var format;
//獲取轉化比(天數跟毫秒數的比例)
if (value == 1) {
format = parseFloat(24 * 60 * 60 * 1000);
}
//獲取轉化比(小時數跟毫秒數的比例)
else if (value == 2) {
format = parseFloat(60 * 60 * 1000);
}
//獲取轉化比(分鍾數跟毫秒數的比例)
else if (value == 3) {
format = parseFloat(60 * 1000);
}
//獲取轉化比(秒數跟毫秒數的比例)
else if (value == 4) {
format = parseFloat(1000);
}
return format;
}
//獲取兩個日期的相差日期數(differ 相差天數:1、相差小時數:2、相差分鍾數:3、相差秒數:4)
var getDifferDate = function (firstDate, secondDate, differ) {
//1)將兩個日期字符串轉化為日期對象
var startDate = new Date(firstDate);
var endDate = new Date(secondDate);
//2)計算兩個日期相差的毫秒數
var msecNum = endDate.getTime() - startDate.getTime();
//3)計算兩個日期相差的天數
var dayNum = Math.floor(msecNum /getDifferScale(differ));
return dayNum;
}
//測試方法
var TestClick = function(){
var date1 = $("#Date1").val();
var date2 = $("#Date2").val();
var differ = $("#differ").val();
if(date1 == "" || date1==null){
alert("第一個日期不能為空");
}
else if(date2 == "" || date2==null){
alert("第二個日期不能為空");
}
else if(differ == "" || differ==null ){
alert("日期相差數不能為空");
}
var result = getDifferDate(date1,date2,differ);
console.log("輸出結果:"+ result);
}
</script>
注:原先測試是測試日期和當前日期比較,所以有前面兩個方法(獲取當前日期和格式化日期)
運行結果如圖:
調用輸出結果:
Ps: 兩個日期比較,重要的是他們之間轉化率(天與毫秒的轉化,時與毫秒的轉化,..等)和計算方法
