比较日期&时间Javascript

时间:2013-01-11 20:51:17

标签: javascript

好的,我无法理解这一点,我看了很多关于SF的帖子但是无法弄明白。

我需要比较两个日期&时间,开始和结束。 如果结束很好,那么alert();

适用于Chrome但不适用于IE(9) (格式为:2013年1月1日10:00)

var stDate = new Date(date +" "+ start);
var enDate = new Date(dateEnd + " "+ end);

        if ( Date.parse ( enDate ) > Date.parse ( stDate ) ) {
            alert('on no');
        }

请帮忙,我卡住......

3 个答案:

答案 0 :(得分:3)

只需制作一个自定义解析器,它比试图计算不同浏览器如何处理各种时间字符串格式要快得多:

function parse(datestring){
    var months = {"Jan":0,"Feb":1,"Mar":2,"Apr":3,"May":4,"Jun":5,"Jul":6,"Aug":7,"Sep":8,"Oct":9,"Nov":10,"Dec":11}
    var timearray = datestring.split(/[\-\ \:]/g)
    return Date.UTC(timearray[2],months[timearray[1]],timearray[0],timearray[3],timearray[4])
}

这将以毫秒为单位返回Unix时间,并使用UTC,从而避免了夏令时缺失时间的复杂化。它适用于您指定的格式,但不验证输入。

答案 1 :(得分:2)

if ( enDate.getTime() > stDate.getTime() ) {
    alert('oh no');
}

推送号码(+enDate)与使用.getTime()方法相同:

if ( +enDate > +stDate ) {
    alert('oh no');
}

答案 2 :(得分:0)

var stDate = new Date(date +" "+ start);
var enDate = new Date(dateEnd + " "+ end);

        if ( enDate.getTime() > stDate.getTime() ) {
            alert('on no');
        }

创建Date对象:

var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);

getTime()返回自1970/01/01以来的毫秒数

相关问题