<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>比较时间大小</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta name='author' content="" />
<script type='text/javascript' src='https://code.jquery.com/jquery-3.3.1.min.js' charset='utf-8'></script>
<script type="text/javascript">
function comparetime()
{
var starttime='2019-04-03';
var endtime='2019-04-03';
var rstarttime=new Date(starttime);
var rendtime=new Date(endtime);
alert("是否小于等于:" + (rstarttime <= rendtime));
alert("是否等于:" + (rstarttime == rendtime));
alert("是否小于:" + (rstarttime < rendtime));
}
</script>
</head>
<body>
<input type="button" value="比较" onclick="comparetime()" />
</body>
Date类型不是简单类型,而是对象
1.>,>=,<,<=。如果比较的一方为对象,调用这个对象的valueOf()方法,然后进行值比较。如果该对象没有valueOf()方法,则调用toString()方法,比较字符串的值。所以第一个比较为true;
2.js中==比较的双方都是对象的话,比较的是内存地址,两个对象都是new出来的,内存地址不同,所以第二个比较为false。
3.参见1,所以为false。
你可以看看rstarttime..toString()结果是多少,我这里是"Wed Apr 03 2019 08:00:00 GMT+0800 (中国标准时间)",然后比较rstarttime=="Wed Apr 03 2019 08:00:00 GMT+0800 (中国标准时间)" 结果为true
@nicky0227: 好的,谢谢大佬。我还有得学呢。
这是js,jquery是封装js的库。
rstarttime和rendtime是两个不同的对象,肯定是不相同啊。
可以调用方法getTime() 获取值后再比较。
rstarttime.getTime() == rendtime.getTime()。
getTime() 获取的是当前时间距离1970-1-1的毫秒数。
谢谢哦,又知道了点
@wwachi: 不用谢~
不是任何东西都能比大小的
时间分前后不分大小,像前面那位大佬说的一样,硬要比较就转换成时间戳再比较
就像东西南北,哪个大哪个小说不清楚的
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>比较时间大小</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<meta name='author' content="" />
<script type='text/javascript' src='https://code.jquery.com/jquery-3.3.1.min.js' charset='utf-8'></script>
<script type="text/javascript">
function comparetime() {
var starttime = '2019-04-03';
var endtime = '2019-04-03';
var rstarttime = (new Date(starttime)).getTime();
var rendtime = (new Date(endtime)).getTime();
alert("是否小于等于:" + (rstarttime <= rendtime));//true
alert("是否等于:" + (rstarttime === rendtime));//true
alert("是否小于:" + (rstarttime < rendtime));//false
}
</script>
</head>
<body>
<input type="button" value="比较" onclick="comparetime()" />
</body>
谢谢你哦
rstarttime 和rendtime类型是对象,不能这样比,可以转为日期后再转为时间戳比较
– 绝品骚年 5年前@绝品骚年: 谢谢你哦,知道了
– wwachi 5年前