js怎么判断是否是date类型

JavaScript08

js怎么判断是否是date类型,第1张

//参考代码function checkDate(obj){ var strDate=obj.value//获取对象的值 re=/^(\d{4})(\d{2})(\d{2})$/g//正则表达式 if(re.test(strDate))//判断日期格式符合YYYY-MM-DD { alert("right")//是日期,弹出“right” }}

JSON是一种数据格式,和JS对象虽然语法类似,但是还是有根本区别的。

JSON格式在传输时只能传输一些基本数据类型,如String、Number、Boolean。因此我想你说的date类型只是JSON数据中的一个字符串,例如:

var json = {

date : '2013-02-26 10:50:22'

}

你可以通过一个正则表达式来判断是否为日期格式,如:

var reg = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/

var isDate = reg.test(json.date)

alert(isDate)

利用JS内置函数Date先把日期格式化,然后用getTime()方法获得毫秒数,然后进行比较

<script type="text/javascript">

    var a = new Date("2016-12-12")

    var date1 = a.getTime()

    var b = new Date("2016-12-31")

    var date2 = b.getTime()

    if (date1 > date2) {

        alert("第一个日期大!")

    } else {

        alert("第二个日期大!")

    }

</script>

也可以自定义函数来比较,这个比较好点

<script type="text/javascript">

    function dateCompare(date1,date2) {

        var a = new Date(date1)

        var b = new Date(date2)

        if (a.getTime() > b.getTime()) {

            alert(date1+"比"+date2+"大")

        } else {

            alert(date2+"比"+date1+"大")

        }

    }

    dateCompare("2016-12-12","2011-12-12")

</script>

其实不用getTime()这个方法,直接用Date()格式化的值也可以直接把两个日期比较出来的,只不过换算成毫秒比较好理解。我那里的函数,少了一个相等情况的判断,不过总体意思是差不多的。