无法使用Angular.js / Javascript比较日期

时间:2016-10-19 10:02:35

标签: javascript angularjs

我有一个问题。我无法使用Angular.js / Javascript将今天的日期与之前的日期进行比较。我在下面解释我的代码。

 var today=new Date();
 if(today >= new Date($scope.date1.split("-").reverse().join(","))){
    alert('Please select todays date or upcoming date');
 }

我在这里获得了$scope.date1这个2016-10-18格式的价值。在日期为2016-10-18时,我无法比较。我需要的是所选日期是今天日期的前一个日期警报将显示。请帮助我。

2 个答案:

答案 0 :(得分:1)

new Date($scope.date1.split("-").reverse().join(","))不会创建有效日期。



//Pass the string directly
var nDate = new Date('2016-10-18'); 
var today = new Date();
if (today >= nDate) {
  console.log('Please select todays date or upcoming date');
}




答案 1 :(得分:0)

您无法比较日期。

使用3初始化日期对象时,会使用当前时间进行设置。

所以

new Date()

永远不会是相同的

var today = new Date("2016-10-19"); //----> current date here
var anothertoday = new Date();

上面的表达式评估为true,因为如果你看到两个日期的时间

anothertoday > today //-----> true

要仅根据today.getHours() //---> 0 anothertoday.getHours() //---> current time shall be displayed 进行比较,您需要将date的时间设置为anothertoday 0

现在上面的表达式应该评估为anothertoday.setHours(0,0,0,0)

false

因此,在您的情况下,您的代码应与此类似

anothertoday > today //---->false