JS 如何比较时间大小?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 如何比较时间大小?相关的知识,希望对你有一定的参考价值。

2001-2-2

2000-2-3

比较两个日期谁大?得到布尔值(不要用字符串比较 谢谢)

1、打开Sublime  Text软件,新建html文档,并准备HTML结构

2、然后我们在body标签中准备好页面加载事件

3、在页面加载事件中,我们准备两个日期字符串,如下图所示,这里准备日期字符串的原因是因为很多前端的日期值一开始都是字符串的形式

5、接下来我们利用JS中的new Date方式将日期字符串转化为日期对象

6、接下来我们就可以运用IF语句直接对日期对象进行比较了

7、最后运行页面以后,我们就可以看到弹出窗口显示了比较的结果

参考技术A

需要准备的材料分别是:电脑、html编辑器、浏览器。

1、首先,打开html编辑器,新建html文件,例如:index.html。

2、在index.html的<script>标签中,输入js代码:

var date1 = '2001-2-2';

var date2 = '2000-2-3';

var date1 = date1.replace(/-/g,'/');

var date2 = date2.replace(/-/g,'/');

var timestamp1 = new Date(date1).getTime();

var timestamp2 = new Date(date2).getTime();

var r = timestamp1 > timestamp2;

if (r)

document.write(date1 + ' > ' + date2);

else

document.write(date1 + ' <= ' + date2);

3、浏览器运行index.html页面,此时会打印出2个日期通过转换成时间戳后对比大小的结果。

参考技术B javascript日期函数
Date(日期)对象可以使用Date()构造器来创建,在前面的教程中我们已经介绍了Date()构造器,这里就不重复叙述。它没有参数,返回的数值就是当前的日期。下面的表格显示了为日期构造器的有效输入:

var today = new Date();
返回当前的日期和时间

var newyear = new Date(December 31, 1998 23:59:59);
输入的是表单的字符串 “月 日,年 小时:分钟:秒”

var bday = new Date(75, 1, 16);
参数是年份,月,日

var bday = new Date(75, 1, 16, 12, 0, 0);
参数是年份,月,日,小时,分钟,秒

这里作点补充:月份是从0开始的,比如一月份=0,二月份=1,三月份=3等等。

从上面可以看出创建一个日期对象是相对地简单,以下的表格是一系列的函数可以用于改变或者访问这些对象的属性:

日期访问方法

Method(方法)
Description (描述)
Value(数值)

getYear()
返回年份的最后两位数字
2001

getMonth()
返回年份中的第几月(0到11)
5

getDate()
返回月份中的第几日(1到31)
2

getDay()
返回星期中的第几天 (0到6)
6

getTimezoneOffset()
返回当地时间与格林尼治天文台平均时间的差别
-480 (-8h)

getHours()
返回一天中的时针点数(0到23)
16

getMinutes()
返回分钟 (0..59)
8

getSeconds()
返回时间的秒 (0到59)
24

getTime()
返回自从公元1970年1月1日的毫秒数
991469304470

这里注意:IE浏览器的一些版本返回Timezoneoffset数值是用错误的符号,比如用”-”代替”+”等等。

日期设置方法

setDate()
设置每月中的第几天(从0到30)

setHours()
设置小时(从0到23)

setMinutes()
设置分钟(从0到59)

setMonth()
设置月份(从0到11)

setSeconds()
设置秒数(从0到59)

setTime()
设置时间(从公元以来的毫秒数)

setYear()
设置年份

其它的日期方法

parse
转化日期字符串为自从公元以来的毫秒数,比如Date.parse(“date string”)

toString()
Sat Jun 2 16:08:24 UTC+0800 2001

toGMTString()
Sat, 2 Jun 2001 08:08:24 UTC

toLocaleString()
2001年6月2日 16:08:24

所有的这些函数引用于独立的日期对象。如果你具有深厚的Java编程背景,那么你可以将它们认为是Date类的一些公共的方法而已。下面给出一个典型的例子来设置日期对象到当前时间加1年:

var nextYear = new Date(); // 初始化日期对象

nextyear.setYear(nextYear.getYear() + 1); // 增加1年

实际上,parse函数是Date对象的一个方法,而不是一个独立的日期变量,如果使用Java术语,它就称为Date类的一个静态方法。这个正是我们为什么使用Date.pase()而不使用somedate.parse()的原因啦。

参考资料:百度一下

参考技术C 将这两个字符串转换为Date类型,就可以直接比较大小了
function toDate(str)
var sd=str.split("-");
return new Date(sd[0],sd[1],sd[2]);

var d1=toDate("2001-2-2 ");
var d2=toDate("2001-2-3");
alert(d1>d2);本回答被提问者采纳
参考技术D <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dateutil-js时间举例</title>
<!-- <script src="http://www.shicishu.com/down/dateutil-1.0.0.js"></script>-->
<script src="http://www.shicishu.com/down/dateutil-1.0.0.min.js"></script>
</head>
<body>
<script type="text/javascript">
console.log(tdoa('2020-08-22 08:00:00','2022-10-29 18:00:00'))//剩余: 798天10小时0分0秒
</script>
</body>
</html>

以上是关于JS 如何比较时间大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何用JS比较两个日期时间的大小呢?

关于js中验证所填时间与当前时间大小的比较

js两个时间大小的比较问题(只有时间比较,比如14:00和15:00的比较)

js时间比较问题 如何只比较两个时和分的大小?

js 比较两个版本的大小 比如 4.5.1和 4.6.2

delphi日期时间比较大小