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

 更新时间:2024年06月14日 10:26:21   作者:牧小七  
在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比较两个日期的时间大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • jsonp格式前端发送和后台接受写法的代码详解

    jsonp格式前端发送和后台接受写法的代码详解

    jsonp是ajax提交的一种格式不会受跨域限制,这篇文章主要介绍了jsonp格式前端发送和后台接受写法的代码详解,需要的朋友可以参考下
    2019-11-11
  • 如何基于js管理大文件上传及断点续传详析

    如何基于js管理大文件上传及断点续传详析

    文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难,下面这篇文章主要给大家介绍了关于如何基于js管理大文件上传及断点续传的相关资料,需要的朋友可以参考下
    2021-08-08
  • 小程序开发指南之全局配置

    小程序开发指南之全局配置

    这篇文章主要给大家介绍了关于小程序开发指南之全局配置的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • js 函数式编程学习笔记

    js 函数式编程学习笔记

    这两天看书看到了函数式编程那节,感觉学到了挺多东西,之前看别人代码都写的挺漂亮,现在我写的代码是有点乱,所以还是要学习下别人的编程模式
    2017-03-03
  • JavaScript中EventBus实现对象之间通信

    JavaScript中EventBus实现对象之间通信

    这篇文章主要介绍了JavaScript中EventBus实现对象之间通信,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 浅谈JavaScript节流与防抖

    浅谈JavaScript节流与防抖

    这篇文章主要为大家介绍了JavaScript的节流与防抖,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • JavaScript 删除数组元素的方法

    JavaScript 删除数组元素的方法

    本文主要介绍了JavaScript 删除数组元素的方法,包括操作方法改变了原数组和操作方法不改变原数组,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • js动态生成Html元素实现Post操作(createElement)

    js动态生成Html元素实现Post操作(createElement)

    这篇文章主要介绍了js动态生成Html元素实现Post操作(createElement),需要的朋友可以参考下
    2015-09-09
  • layui 弹出层值回传解决方式

    layui 弹出层值回传解决方式

    今天小编就为大家分享一篇layui 弹出层值回传解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • javascript中bind函数的作用实例介绍

    javascript中bind函数的作用实例介绍

    bind()的方法在ie,6,7,8中不适用,需要扩展通过扩展Function prototype可以实现此方法,下面为大家介绍下javascript中bind函数的作用
    2014-09-09

最新评论