格式如下
配置代码即可
注意修改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>