检查JavaScript中的日期时间是否相等时出现错误结果

检查JavaScript中的日期时间是否相等时出现错误结果,javascript,datetime,Javascript,Datetime,在我的JavaScript代码中,我必须使用datetime值定义变量(x和y)。以下所有语句返回false: xfalse x>y->false x==y->false x==y->false 当我调试代码时,x和y都具有相同的值“Sat Jan 1 12:00:00 UTC+0100 2011”和相同的类型 我正在使用IE9 是否有其他方法检查两个日期时间值是否相等 更新(代码)-我试图提取一些相关部分,整个项目非常大: var data; //Dates are loaded fr

在我的JavaScript代码中,我必须使用datetime值定义变量(x和y)。以下所有语句返回false:

  • xfalse
  • x>y->false
  • x==y->false
  • x==y->false
当我调试代码时,x和y都具有相同的值“Sat Jan 1 12:00:00 UTC+0100 2011”和相同的类型

我正在使用IE9

是否有其他方法检查两个日期时间值是否相等

更新(代码)-我试图提取一些相关部分,整个项目非常大:

var data;


//Dates are loaded from a webservice and returned as strings; they are parsed with the following function


data = parseD(getDataFromService());

function parseD (data) {
    for (var i = 0; i < data.length; i++) {
        var d = data[i];
        for (var key in d) {
            if (d[key] && d[key].toString().substring(0, 6) === "/Date\(")
                d[key] = new Date(parseInt(d[key].toString().substr(6)));
        }
    }
    return data;
};

function getCssForCell(row, columnID, dataContext, value) {
            var css = "";
            if (columnID === "VF" && value) {
                if (row > 0) {
                    if (data[row].VF < addDays(data[row - 1].VF, 2)) {
                        css = "error_cell";
                    }
                }
            }
            if (columnID === "VU" || columnID === "VF") {
                if (dataContext.VF && dataContext.VU) {
                    if (dataContext.VU <= dataContext.VF) {
                        css = "error_cell";
                    }
                }
            }
            if (columnID === "Rate" && row < (strict_mode ? data.length - 1 : data.length - 2)) { //value for Rate must be assigned
                if (value === undefined || value === null) {
                    css = "error_cell";
                }
            }
            if (columnID === "VF" && row < (strict_mode ? data.length - 1 : data.length - 2)) {
                if (value === undefined || value === null) {
                    css = "error_cell";
                }
            }

            if (columnID === "Rate" && value < 0) {
                css = "error_cell";
            }

            //PROBLEM IN NEXT LINE
            if (columnID === "VU" && row < data.length - 1 && dataContext.VU && data[row + 1] && addDays(dataContext.VU, 1) != data[row + 1].VF ) {
                css = "error_cell";
            }

            return css;
        }

function addDays(date, days) {
    if (date) {
        var result = new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours());
        result.setDate(result.getDate() + days);
        return result;
    }
    return date;
}
var数据;
//日期从Web服务加载并作为字符串返回;它们通过以下函数进行解析
数据=已解析(getDataFromService());
已解析函数(数据){
对于(变量i=0;i0){
if(数据[row].VF如果(dataContext.VU您不应该比较日期对象实例,而是比较它们的值,请改用
.getTime()
方法进行比较:

x.getTime() < y.getTime();
x.getTime() > y.getTime();
x.getTime() == y.getTime();
x.getTime() === y.getTime();
x.getTime()y.getTime();
x、 getTime()==y.getTime();
x、 getTime()==y.getTime();

.getTime()
根据世界时返回与指定日期的时间相对应的数值,该值是自1970年1月1日00:00:00 UTC以来的毫秒数,也相当于
.valueOf()
method.

如果日期是实际的日期对象,则比较日期应该有效。否则,请尝试比较两者的UTC值。我已经使用了xy来比较日期(不使用getTime),并且工作正常。在JavaScript中,dateA==dateB始终为false是否真的是正常行为?对于“>”和“