Javascript中日期变量的问题
issue with date variable in Javascript
var dt_from = "2013/05/25";
var dt_to = "2013/05/25";
if(dt_from == dt_to)
{
alert("Both dates are Equal!");
}
else if(dt_from > dt_to)
{
alert("From date should not be greater than todate!");
}
else if(dt_from < dt_to)
{
alert("Okay!");
}
以上代码运行正常。但是下面的代码不能工作:
var dt_from = new Date("2013/05/25");
var dt_to = new Date("2013/05/25");
if(dt_from === dt_to)
{
alert("Both dates are Equal!");
}
else if(dt_from > dt_to)
{
alert("From date should not be greater than todate!");
}
else if(dt_from < dt_to)
{
alert("Okay!");
}
此if(dt_from === dt_to)
不能与上述代码一起工作。任何想法?
您正在比较对象引用与==
。虽然它们可能表示相同的日期和时间,但它们是不同的对象。使用<
/>
工作,因为它将对象转换为数字(自epoch以来的毫秒),然后进行比较。如果你想测试是否相等,你必须手动强制转换:
dt_from.getTime() == dt_to.getTime() // most explicit
// or
+dt_from == +dt_to // shortest
dt_from - dt_to == 0 // equivalent…
dt_from.valueOf() == dt_to.valueOf()
Number(dt_from) == Number(dt_from)
可以使用getTime()比较日期,如下所示:
var a = new Date("2013/05/25");
var b = new Date("2013/05/25");
//compare dates
alert(a.getTime() === b.getTime())
工作示例:http://jsfiddle.net/HrJku/
两个日期永远不会相同,即使它们指的是同一时间点。你需要将它们转换成字符串或数字,您可以用其中一个减去另一个,例如:
var dt_from= new Date("2013/05/25");
var dt_to= new Date("2013/05/25");
var diff= dt_to-dt_from;
if(diff=== 0){
alert("Both dates are Equal!");
}
else if(diff<0){
alert("From date should not be greater than todate!");
}
else alert("Okay!");
相关文章:
- 将PHP变量传递给jQuery时遇到问题
- 参数变量出现ngTable指令问题
- 为变量分配多个nodejs导出返回值时出现问题
- 如何处理流星变量&对miniMongo有问题
- Jquery变量类型问题
- 带有.css()串联问题的jQuery变量
- JavaScript变量引用数组时出现问题
- 将一个php变量从js传递到php,并返回内容问题
- 简单的变量问题
- 可以't在quizz页面范围问题上用最终分数更新变量
- array_push平面数组问题-需要能够向数组中添加多个变量
- 尝试将变量传递到对象中时的作用域问题'的方法构造函数
- Javascript函数变量传递语法问题
- 访问带有变量的Object元素时出现问题
- 将 Ajax 数据分配给全局变量时出现问题
- JavaScript/jQuery中的基本数学问题-变量记忆值
- 简单的jQuery变量问题-变量冲突
- Javascript作用域问题:变量未被识别
- Javascript作用域问题-变量未定义
- 目标转换问题-变量修改