相关疑难解决方法(0)

用JavaScript比较两个日期

有人可以建议一种方法来比较使用JavaScript大于,小于和过去的两个日期的值吗?值将来自文本框.

javascript datetime compare date object

1791
推荐指数
26
解决办法
183万
查看次数

29
推荐指数
3
解决办法
3万
查看次数

两个相同的JavaScript日期不相等

当我创建两个相同的JavaScript Date对象然后比较它们时,它们似乎不相等.如何测试两个JavaScript日期是否具有相同的值?

var date1 = new Date('Mon Mar 11 2013 00:00:00');
var date2 = new Date('Mon Mar 11 2013 00:00:00');
console.log(date1 == date2); //false?
Run Code Online (Sandbox Code Playgroud)

JS Fiddle在这里可用

javascript date

23
推荐指数
2
解决办法
1万
查看次数

"=="的对象相等的标准定义是什么?

这里似乎是共同的认识之间的不匹配==,它实际上做什么.为此问题提供一些背景知识:

typeof new Number(1); // returns object
typeof new String(1); // returns object
typeof 1;             // returns number
Run Code Online (Sandbox Code Playgroud)

看似,这两个NumberString是的object类型.这并不奇怪.然而==,true当操作数相等而不管它们的类型时,事情会变得有趣.

根据一个有点权威的说明:

运算符尝试使用对象的valueOf和toString方法将对象转换为原始值,String或Number值.如果此转换对象的尝试失败,则会生成运行时错误.

简而言之,==应该按原始值比较对象.出奇:

var numa = new Number(1);
var numb = new Number(1);
var stri = new String(1);

numa.toString() == stri.toString(); // returns true, as expected
numa.valueOf() == stri.valueOf();   // returns true, as expected

numa == stri; // returns …
Run Code Online (Sandbox Code Playgroud)

javascript types operators type-conversion

9
推荐指数
2
解决办法
379
查看次数

为什么(new Date()== new Date())为false,但是(Date()== Date())是真的?

我一直在乱搞JSFiddle来解决FreeCodeCamp中的这个问题.当我使用Date作为字符串时(即没有"new"):

情况1:

function isSameDay (dtFrom, dtTo) {
    return dtFrom == dtTo
  }

  let today = Date()
  let tomorrow = Date()

  console.log(today)
  console.log(tomorrow)
  console.log(isSameDay(today, tomorrow))
Run Code Online (Sandbox Code Playgroud)

isSameDay返回true.但是当我使用Date作为构造函数时(使用"new"):

案例2:

function isSameDay (dtFrom, dtTo) {
    return dtFrom == dtTo
  }

  let today = new Date()
  let tomorrow = new Date()

  console.log(today)
  console.log(tomorrow)

  console.log(isSameDay(today, tomorrow))
Run Code Online (Sandbox Code Playgroud)

isSameDay返回false.但是(!),当我添加一元运算符"+"时:

案例3:

function isSameDay (dtFrom, dtTo) {
    return dtFrom == dtTo
  }

  let today = + new Date()
  let tomorrow = + new Date() …
Run Code Online (Sandbox Code Playgroud)

javascript equality date

3
推荐指数
1
解决办法
693
查看次数