js关于时间(date)的比较

Posted mCod

tags:

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

  之前在工作上遇到一个问题:使用一些时间插件,如果有俩个时间,要判断结束时间和开始时间的大小?后来就查找了一些资料,这边整理出俩个比较简便的方法。

在这我拿 laydate.js 这个插件来举例:

  首先是 html 代码,我简单的写了俩个时间框:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 8     <title>Document</title>
 9     <style>
10         * {
11             list-style: none
12         }
13     </style>
14 </head>
15 
16 <body>
17     <ul>
18         <li>
19             <span>开始时间:</span>
20             <input type="text" id="startTime">
21         </li>
22         <li>
23             <span>结束时间:</span>
24             <input type="text" id="endTime">
25         </li>
26         <li>
27             <button id="btn1">确定</button>
28             <button id="btn2">点击</button>
29         </li>
30     </ul>
31 </body>

  接着引入 laydate.js ,为俩个输入框绑定时间插件,接着我们看第一种比较的方法:

 1 <script src="./laydate/laydate.js"></script>
 2 <script>
 3         laydate.render({
 4             elem: "#startTime"
 5         });
 6         laydate.render({
 7             elem: "#endTime"
 8         });
 9 
10         var btn1 = document.getElementById("btn1");
11         btn1.onclick = function() {
12                 var startTime = document.getElementById("startTime").value;
13                 var endTime = document.getElementById("endTime").value;
14 
15                 if (startTime > endTime) {
16                     alert("开始日期不能大于结束日期");
17                 }
18             }
19 </script>

   这种比较方法是做了字符串的比较(因为此插件取到的时间格式是标准的时间格式,所以不用做其他操作)。

  第二种比较方式相对于第一种,比较容易理解一点:  

 1 <script src="./laydate/laydate.js"></script>
 2 <script>
 3         laydate.render({
 4             elem: "#startTime"
 5         });
 6         laydate.render({
 7             elem: "#endTime"
 8         });
 9 
10         var btn2 = document.getElementById("btn2");
11 
12         btn2.onclick = function() {
13             var startTime = document.getElementById("startTime").value;
14             var endTime = document.getElementById("endTime").value;
15 
16             if (startTime.length > 0 && endTime.length > 0) {
17                 var startTmp = startTime.split("-");
18                 var endTmp = endTime.split("-");
19                 var sd = new Date(startTmp[0], startTmp[1], startTmp[2]);
20                 var ed = new Date(endTmp[0], endTmp[1], endTmp[2]);
21                 if (sd.getTime() > ed.getTime()) {
22                     alert("开始日期不能大于结束日期");
23                 }
24             }
25         }
26 </script>

 

  

以上是关于js关于时间(date)的比较的主要内容,如果未能解决你的问题,请参考以下文章

关于js----------------分享前端开发常用代码片段

几个关于js数组方法reduce的经典片段

几个关于js数组方法reduce的经典片段

关于JS中new date 函数的问题

tinydate.js[v0.1]关于Javascript Date的工具

带有神秘附加字符的 Javascript Date getTime() 代码片段