我有两个日期:
date1 =“2013-07-08 12:30:00”
date2 =“2013-07-08 13:30:00”
现在在javascript中我希望匹配这两个日期并且它们不匹配,而不是我想要删除约会,如果它们匹配而不是无关。
我试过这段代码,但它不起作用:
if(date1 == date2)// Event already exists
{
// do nothing
}
else
{
// delete the record.
}
我试图与“新日期(date1)==新日期(日期2)”进行比较,但它也不起作用。
我的代码或日期格式存在问题。任何人都可以知道如何做到这一点以及我在这段代码中的错误?
提前致谢。
答案 0 :(得分:1)
两个不同的对象永远不会相同,你必须比较构成unix时间戳的数字:
var date1 = "2013-07-08 12:30:00",
date2 = "2013-07-08 13:30:00";
var d1 = new Date(date1);
var d2 = new Date(date2);
if (d1.getTime() == d2.getTime()) {
}
答案 1 :(得分:0)
它对我有用:
var date1 = "2013-07-08 12:30:00";
var date2 = "2013-07-08 12:30:00";
var date3 = "2013-07-08 12:00:00";
console.log(date1 == date2); //true
console.log(date1 == date3); //false
答案 2 :(得分:0)
Adeno有一个有效的答案,但如果日期是毫秒appart则会失败(如果您使用有效的日期字符串,则不是OP示例中的情况)。为了确保您可以按日期或日期比较日期:
function sameTime(dt1,dt2){
//round the dates to the minutes
var t1=new Date(dt1);
var t2=new Date(dt2);
t1.setSeconds(0,0);
t2.setSeconds(0,0);
return t1.toString()===t2.toString();
}
function sameDay(dt1,dt2){
//round the dates to the day
var t1=new Date(dt1);
var t2=new Date(dt2);
t1.setHours(0,0,0,0);
t2.setHours(0,0,0,0);
return t1.toString()===t2.toString();
}
function sameMonth(dt1,dt2){
//round the dates to the month
var t1=new Date(dt1);
var t2=new Date(dt2);
t1.setHours(0,0,0,0);
t2.setHours(0,0,0,0);
t1.setDate(1);
t2.setDate(1);
return t1.toString()===t2.toString();
}
var date1 = "2013-07-08T12:30:00",
date2 = "2013-07-08T13:30:00";
var d1 = new Date(date1);
var d2 = new Date(date2);
console.log(sameTime(d1,d2));//precise to the minute
console.log(sameDay(d1,d2));//precise to the day
console.log(sameMonth(d1,d2));//precise to the month