Wscats/articles

JS日期对比

Wscats opened this issue · 0 comments

今天刚好用到这个函数,写了一个日期对比的例子

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title>写一个JS对比时间的例子</title>
    </head>

    <body>
    </body>
    <script>
        function compareTime(a, b) {
            var arr = a.split("-"); //log [2016,04,06]
            var start = new Date(arr[0], (arr[1] - 1), arr[2]);
            var starts = start.getTime(); //输出时间戳进行对比
            var arrs = b.split("-");
            var end = new Date(arrs[0], (arrs[1] - 1), arrs[2]);
            var ends = end.getTime();
            if (starts >= ends)
                console.log('开始时间大于结束时间');
            else
                console.log('开始时间小于结束时间');
        }
        compareTime('2016-05-03', '2016-05-04');
    </script>

</html>

有一点要注意的就是这一句
var starttime = new Date(arr[0], (arr[1] - 1), arr[2]);
月份记得在函数里面减去1
因为在Javascript中,月份的数值是从0到11之间的整数(1月至12月),例如5就是代表6月,
这里要是要注意的
其他的话按照正常转换为时间戳进行对比即可

后面再增加一个方法就是判断时间是星期几,看改进的例子

function compareTime(a, b) {
            var arr = a.split("-"); //log [2016,04,06]
            var start = new Date(arr[0], (arr[1] - 1), arr[2]);
            var starts = start.getTime(); //输出时间戳进行对比
            var arrs = b.split("-");
            var end = new Date(arrs[0], (arrs[1] - 1), arrs[2]);
            var ends = end.getTime();
            var weekDay = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
            //getDay() 方法可返回表示星期的某一天的数字。
            console.log("开始时间是" + weekDay[start.getDay()] + "\r\n" + "结束时间是" + weekDay[end.getDay()]);
            var now = new Date();
            console.log("现在是" + weekDay[now.getDay()]);
            if (starts >= ends)
                console.log('开始时间大于结束时间');
            else
                console.log('开始时间小于结束时间');
        }
        compareTime('2016-05-03', '2016-05-04');

其实关键就是getDay()函数返回值,返回值是0(周日)到6(周六)之间的一个整数。