假设我有一个Date
由字符串构造的适当对象:"Tue Jan 12 21:33:28 +0000 2010"
。
var dateString = "Tue Jan 12 21:33:28 +0000 2010";
var twitterDate = new Date(dateString);
然后,我用的是<
和>
小于和大于比较运算,看它是否比类似结构的或多或少近Date
。比较使用这些运算符指定的日期的算法,还是具体未指定,如localeCompare
?换句话说,我保证以这种方式得到更近的日期吗?
var now = new Date();
if (now < twitterDate) {
// the date is in the future
}
发布于 2018-06-26 15:08:32
ECMAScript中对象的关系操作依赖于 你可以在定义时使用valueOf访问的内部ToPrimitive函数(带有提示编号)。
尝试
var val = new Date().valueOf();
你会得到这个日期的内部值,就像在很多语言中那样,它是自1970年1月1日午夜以来的毫秒数(与你使用的相同getTime()
)。
这意味着你在设计上确保始终具有正确的日期比较功能。
发布于 2018-06-26 16:40:30
我想是的。使用if (now < twitterDate)
,它评估为if (now.valueOf()<twitterDate.valueOf())
。valueOf()
传递自01/1970 00:00:00以来传递的毫秒数,因此对这两个数字的比较是有效的。
像这样检查一下
var then = new Date("Tue Jan 12 21:33:28 +0000 2010")
,now = new Date;
console.log(then.valueOf(),'::',now.valueOf(),'::',now<then);
//=> 1263332008000 :: 1352365105901 :: false
https://stackoverflow.com/questions/-100005528
复制相似问题