JavaScript 日期比较在 IE8 中失败

Cha*_*ynn 5 javascript date internet-explorer-8 date-comparison

我有一个函数可以将日期从 DD/MM/YYYY 转换为 YYYY-MM-DD。

这适用于除 IE8 之外的所有浏览器,出于某种原因,当创建新的 Date 对象时,它返回 NaN。

代码的基本实现 http://jsfiddle.net/bX83c/1/

var compareDate = function(value){
    var dateFragements = value.split('/');
    if (dateFragements.length == 3) {
        var currentDate = new Date();
            currentDate.setHours(0, 0, 0, 0);

        var startDate = new Date(dateFragements[2] + '-' + dateFragements[1] + '-' + dateFragements[0]);

        if (startDate >= currentDate) {
            return true;
        } else {
            return false;
        }
    }   
}
alert(compareDate('17/09/2013'));
Run Code Online (Sandbox Code Playgroud)

999*_*99k 3

像这样初始化你的日期。它适用于所有浏览器

var startDate = new Date(dateFragements[2] , dateFragements[1] , dateFragements[0]);
Run Code Online (Sandbox Code Playgroud)

Date使用构造函数初始化对象有 4 种方法

new Date() // current date and time
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)
Run Code Online (Sandbox Code Playgroud)

Date 对象中的字符串并不意味着它会接受所有日期字符串。如果你想给出一个字符串作为输入,请给出这个。(日期片段 [2] + '/' + 日期片段 [1] + '/' + 日期片段 [0]);。(/作为分隔符)所有浏览器都支持