首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JS日期比较如何工作?

JS日期比较如何工作?
EN

Stack Overflow用户
提问于 2018-06-26 07:04:29
回答 2查看 0关注 0票数 0

假设我有一个Date由字符串构造的适当对象:"Tue Jan 12 21:33:28 +0000 2010"

代码语言:javascript
复制
var dateString = "Tue Jan 12 21:33:28 +0000 2010";
var twitterDate = new Date(dateString);

然后,我用的是<> 小于大于比较运算,看它是否比类似结构的或多或少近Date。比较使用这些运算符指定的日期的算法,还是具体未指定,如localeCompare?换句话说,我保证以这种方式得到更近的日期吗?

代码语言:javascript
复制
var now = new Date();
if (now < twitterDate) {
    // the date is in the future
}
EN

回答 2

Stack Overflow用户

发布于 2018-06-26 15:08:32

ECMAScript中对象的关系操作依赖于 你可以在定义时使用valueOf访问的内部ToPrimitive函数(带有提示编号)。

尝试

代码语言:javascript
复制
var val = new Date().valueOf();

你会得到这个日期的内部值,就像在很多语言中那样,它是自1970年1月1日午夜以来的毫秒数(与你使用的相同getTime())。

这意味着你在设计上确保始终具有正确的日期比较功能。

票数 0
EN

Stack Overflow用户

发布于 2018-06-26 16:40:30

我想是的。使用if (now < twitterDate),它评估为if (now.valueOf()<twitterDate.valueOf())valueOf()传递自01/1970 00:00:00以来传递的毫秒数,因此对这两个数字的比较是有效的。

像这样检查一下

代码语言:txt
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档