检查JavaScript中的日期时间是否相等时出现错误结果
在我的JavaScript代码中,我必须使用datetime值定义变量(x和y)。以下所有语句返回false:检查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
- x
false - x>y->false
- x==y->false
- x==y->false
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是否真的是正常行为?对于“>”和“