有3段JS代码,分别如下:
代码一:
var d1=new Date("2011","04","01");
var d2=new Date("2011","03","31");
if(d1<=d2){
.....
}
代码二:
var d1=new Date("2011","04","01");
var d2=new Date("2011","03","31");
if(d1<d2 || d1==d2){
.....
}
代码三:
var d1=new Date("2011","04","02");
var d2=new Date("2011","04","01");
if(d1<d2 || d1==d2){
.....
}
三段代码执行的结果是:代码一中if里面的代码被执行了,而代码二、三中if里面的代码没被执行,求解这是为什么?
代码一:
var d1=new Date("2011","04","01");
var d2=new Date("2011","03","31");
if(d1<=d2){
.....
}
代码二:
var d1=new Date("2011","04","01");
var d2=new Date("2011","03","31");
if(d1<d2 || d1==d2){
.....
}
代码三:
var d1=new Date("2011","04","02");
var d2=new Date("2011","04","01");
if(d1<d2 || d1==d2){
.....
}
三段代码执行的结果是:代码一中if里面的代码被执行了,而代码二、三中if里面的代码没被执行,求解这是为什么?
对象类型能比较,转换成数字比较
alert(d1.getFullYear() + "-" + d1.getMonth() + "-" + d1.getDate());
还有日期的月份好像要少1,也就是从0开始的,0-11
第一个
var d1=new Date("2011","04","01");
var d2=new Date("2011","03","31");4月没有31了,就成了5月一号,所以d1与d2表示 的日期相同 推测不一样的原因是:
<= 判断 < 时会自动d1.valueOf()方法转化 为int了,然后返回false,比较=时,两个int值相等,返回true第二个结果 <,时两个值不相等,返回false,==时,两个对象指向不同的引用,所以也返回false
var d1=new Date("2011","04","01");
var d2=new Date("2011","04","01");
if(d1==d2){
alert("ok");
}类似上边的代码,应该弹出ok才对,可是没有。。