【发布时间】:2012-01-04 22:33:47
【问题描述】:
我需要在 javascript 中比较两个日期。
在我的代码中,我调用了一个 Web 服务方法,该方法序列化并以 JSON 格式返回以下类的实例
public class MyPeriod
{
public int PeriodID { get; set; }
public DateTime BeginDate { get; set; }
public DateTime FirstDeadline { get; set; }
public DateTime SecondDeadline { get; set; }
public DateTime EndDate { get; set; }
}
这将产生一个像这样的 JSON 片段:
{
"d": {
"PeriodID":26,
"BeginDate":"\/Date(1321743660000)\/",
"FirstDeadline":"\/Date(1322002860000)\/",
"SecondDeadline":"\/Date(1322002860000)\/",
"EndDate":"\/Date(1322168400000)\/"
}
}
现在我需要将FirstDeadline 与SecondDeadline 进行比较,所以在我的javascript 中我有一个这样的片段
var date1 = eval(data.d.FirstDeadline.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"));
var date2 = eval(data.d.SecondDeadline.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"));
if (date1 === date2) {
...
}
不幸的是,即使日期具有相同的值,相等比较也不起作用。 有什么帮助吗?
更新 1
我忘了提到我只需要比较日期部分(这样我就不会比较自纪元以来的毫秒数)。
【问题讨论】:
-
我不知道为什么这不起作用,但您可以将日期转换为字符串(.toString、.toGMTString、.toUTCString、.toISOString)并将其用于比较。似乎工作。
标签: javascript jquery datetime