javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > js比较两个日期的时间大小

js如何比较两个日期的时间大小简单代码示例

作者:牧小七

在JavaScript中,日期比较涉及评估两个日期,以确定一个日期是早于、晚于另一个日期还是与另一个日期相同,这篇文章主要给大家介绍了关于js如何比较两个日期的时间大小的相关资料,需要的朋友可以参考下

介绍

使用js比较两个日期的时间大小,一般在前台选择时间时常常使用。比如:结束时间不能小于开始时间,开始时间不能小于当前时间等。

代码示例

示例一:开始时间不能小于当前时间

//开始时间
var startTime = '2024-04-22'
//当前时间
var currentDate = new Date();
var currentDateStr = currentDate.getFullYear() + '-' + (currentDate.getMonth() + 1) + '-' + currentDate.getDate();
if (new Date(currentDateStr).getTime() > new Date(startTime).getTime()) {
	alert('开始时间不能小于当前时间')
}

示例二:结束时间不能小于开始时间

var startTime = '2024-04-22'
var endTime = '2024-04-21'
if (new Date(startTime).getTime() > new Date(endTime).getTime()) {
	alert('结束时间不能小于开始时间')
}

正式环境中时间的判断流程

首先判断开始、结束时间是否为空,不为空再判断结束时间是否小于开始时间

var startTime = $("#startTime").val()
var endTime = $("#endTime").val()
if(isEmpty(startTime)){
	initError('生效时间不能为空',$('#startTime').next());
	flag = false;
}
if(isEmpty(endTime)){
	initError('失效时间不能为空',$('#endTime').next());
	flag = false;
}
if(!isEmpty(startTime)&&!isEmpty(endTime)) {
	var currentDate = new Date();
	var currentDateStr = currentDate.getFullYear() + '-' + (currentDate.getMonth() + 1) + '-' + currentDate.getDate();
	if (new Date(currentDateStr).getTime() > new Date(startTime).getTime()) {
		initError('生效时间不能小于当前时间', $('#startTime').next());
		flag = false;
	}else{
		if (new Date(startTime).getTime() > new Date(endTime).getTime()) {
			initError('生效时间不能大于失效时间', $('#startTime').next());
			flag = false;
		}
	}
}

附:js两个日期比较相差多少天实例

首先来分析一个问题,两个日期是什么格式的?假设是字符串格式:

可能是:2018/04/20,也可能是:2018/04/20 12:00:00

那接下来分情况讨论。

首先看看不含时间部分的日期格式计算:

var aDate = new Date('2018/04/23'); // 通过日期字符串,初始化第一个日期对象
var bDate = new Date('2018/04/25'); // 同上,初始化第二个日期对象
var aDay = 24 * 60 * 60 * 1000; // 完整一天有24小时,将小时换算成毫秒时间戳
var diffDay = (bDate - aDate) / aDay; // 计算间隔天数(注意日期隐式转换)
console.log(diffDay); // 2,23日-25日间隔2天

然后再来看看包含时间部分的日期格式计算:

var aDate = new Date('2018/04/23');
var bDate = new Date('2018/04/25 12:00:00'); // 包含时间的日期字符串
var aDay = 24 * 60 * 60 * 1000;
var diffDay = (bDate - aDate) / aDay;
console.log(diffDay); // 2.5,自然计算的结果
console.log(Math.floor(diffDay)); // 2,根据个人情况向下取整,整数天
console.log(Math.ceil(diffDay)); // 3,根据个人情况向上取整,整数天

总结 

到此这篇关于js如何比较两个日期的时间大小的文章就介绍到这了,更多相关js比较两个日期的时间大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文