格式如下
配置代碼即可
注意修改Jquery 的引用路徑
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/jquery-1.12.4.js"></script>
<script>
// 頁面加載函數
$(function(){
$("#getWeekTotal").click(function(){
// 獲取用戶輸入的時間信息
var startDate = getDate($("#startDate").val());
var endDate = getDate($("#endDate").val());
// alert(startDate);
// 如果用戶所傳日期格式有誤, 退出方法
if(!(startDate || endDate)){
return;
}
// 兩個日期相減 獲取毫秒數
// alert(endDate - startDate);
var startWeek = getWeekOfYear(startDate);
var endWeek = getWeekOfYear(endDate);
$("#startDate").next().html("今年第"+startWeek+"周".fontcolor("green"));
$("#endDate").next().html("今年第"+endWeek+"周".fontcolor("green"));
$(this).next().html("從開始週數計算的第"+(endWeek - startWeek + 1)+"周");
// 獲取當前時間的週數
});
$("#getDateTotal").click(function(){
// 獲取用戶輸入的時間信息
var startDate = getDate($("#startDate").val());
var endDate = getDate($("#endDate").val());
// alert(startDate);
// 如果用戶所傳日期格式有誤, 退出方法
if(!(startDate || endDate)){
return;
}
// 兩個日期相減 獲取毫秒數
// alert(endDate - startDate);
var startDay = getDayOfYear(startDate);
var endDay = getDayOfYear(endDate);
alert("從開始天數計算的第"+(endDay - startDay)+"天");
// 獲取當前時間的週數
});
});
// 計算當前日期, 是當前年份的第幾周
// 老外從 星期天算第一週, 我偏偏不喜歡, 就從週一開始算
function getWeekOfYear(date){
var startDate = new Date();
startDate.setTime(date.getTime());
// 計算當前日期所在年的第一天
startDate.setMonth(0);
startDate.setDate(1);
// 獲取第一天的 星期數
var dayOfWeek = startDate.getDay();
// 2019 年 一月一號 爲星期二 , 所以第一個周 爲 6天 (1-6 號爲 週二到 週日)
// 獲取當年的第一個週一的實際日期,
// 一號爲 週二
// 那麼7號爲 下個週一 號數爲 (8-周幾)
// 設置第一個週一的日期爲
startDate.setDate(8-dayOfWeek);
// 獲取設置第一個週一毫秒數
var startTime = startDate.getTime();
// 獲取 用戶所傳入時間的毫秒數
var dateTime = date.getTime();
// 實際的週數爲 毫秒數相減 轉換爲周
var week = Math.ceil((dateTime - startTime)*1.0/1000/60/60/24/7 ) ;
return week + 1;
}
// 計算今天爲近一年中的第幾天
function getDayOfYear(date){
var startDate = new Date();
startDate.setTime(date.getTime());
// 計算當前日期所在年的第一天
startDate.setMonth(0);
startDate.setDate(1);
// 獲取元旦毫秒數
var startTime = startDate.getTime();
// 獲取 用戶所傳入時間的毫秒數
var dateTime = date.getTime();
// 實際的週數爲 毫秒數相減 轉換爲周
var day = Math.ceil((dateTime - startTime)*1.0/1000/60/60/24 ) ;
return day;
}
// 獲取用戶輸入信息, 並且轉換爲年月日 , 包裝成日期類型返回
function getDate(dateStr){
// 判斷日期是否採用的是 要求格式
var indexFirst = dateStr.indexOf("-");
var indexLast = dateStr.lastIndexOf("-");
if(indexFirst == -1 || indexLast == -1 || indexFirst == indexLast){
alert("日期格式不正確! 請重新測試 ");
return;
}
var year = dateStr.substring(0,indexFirst);
var month = dateStr.substring(indexFirst+1,indexLast);
var day = dateStr.substring(indexLast+1);
var date = new Date();
date.setFullYear(year,month - 1,day);
return date;
}
</script>
</head>
<body>
<center>
輸入兩個日期, 判斷兩個日期之間相隔的天數 和 週數
<br>
<hr>
日期格式 :
2008-08-08
<hr>
起始日期:
<input type="text" id="startDate" value="2019-06-07"/><span></span>
<br><br>
結束日期 :
<input type="text" id="endDate" value="2019-11-09"><span></span>
<br><br>
<button id="getDateTotal">相隔天數</button>
<button id="getWeekTotal">總週數</button><span></span>
</center>
</body>
</html>