JavaScript日期加减天数操作,计算两个日期之间相差天数,获取电脑本地当天日期
废话不多说,直接上代码
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>JavaScript日期常用操作</title>
<script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.js"></script>
<script src="https://www.layuicdn.com/layer-v3.1.1/layer.js" charset="utf-8"></script>
<script src="https://www.layuicdn.com/laydate-v5.0.9/laydate.js" charset="utf-8"></script>
</head>
<style type="text/css">
#dateWarp>input {
min-width: 300px;
}
</style>
<body>
<div id="dateWarp">
<label>单日期:</label>
<input type="text" name="" id="date1" value="" />
<label>日期时间范围:</label>
<input type="text" name="" id="date2" value="" />
</div>
<script type="text/javascript">
//获取当前日期yyyy-mm-dd
function getToDay() {
var year = new Date().getFullYear();
var month = (((new Date().getMonth() + 1).toString())).padStart(2, 0);
var date = (((new Date().getDate()).toString())).padStart(2, 0);
var toDay = year + '-' + month + '-' + date;
return toDay;
};
//日期加减N天,接收日期参数格式dateCalc('2021-10-30',7)
function dateCalc(date, days) {
if (days == undefined || days == '') {
days = 1;
}
var date = new Date(date);
date.setDate(date.getDate() + days);
var month = date.getMonth() + 1;
month = (month.toString()).padStart(2, 0);
var day = date.getDate();
day = (day.toString()).padStart(2, 0);
return date.getFullYear() + '-' + (month) + '-' + (day);
};
window.onload = function() {
var toDay = getToDay();
laydate.render({
elem: '#date1',
trigger: 'click',
theme: 'molv',
value: toDay,
done: function(date1, date2, date3) {
layer.alert(date1 + '往前推算15天后的日期为:' + dateCalc(date1, -15))
}
});
//开始日期往前推7天
var startDate = dateCalc(toDay, -6);
var endDate = toDay;
var dateRange = startDate + ' 08:00:00' + ' ~ ' + endDate + ' 08:00:00';
laydate.render({
elem: '#date2',
theme: 'molv',
type: 'datetime',
trigger: 'click',
range: "~",
value: dateRange,
done: function(date1, date2, date3) {
var date = date1.split(' ~ ');
if (date.length == 1) {
alert('日期不能为空');
return false;
};
var days = dateDifferDays(date[0], date[1]);
alert(`所选日期之间相差${days}天`);
}
})
};
//计算两个日期之间相差天数
//开始与结束日期格式为:yyyy-MM-dd~yyyy-MM-dd,
//如果日期格式为yyyy-MM-dd HH:mm:ss则返回的天数即有小数
function dateDifferDays(dateString1, dateString2) {
var startDate = Date.parse(dateString1);
var endDate = Date.parse(dateString2);
//如果开始日期大于结束日期
if (startDate > endDate) {
return 0;
};
var days = (endDate - startDate) / (1 * 24 * 60 * 60 * 1000);
return days;
};
</script>
</body>
</html>