JavaScript日期常用操作

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>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值