Javascript按日期设置类大于

时间:2017-07-23 12:25:44

标签: javascript jquery css date

如果日期大于,我在表td上设置css类的脚本有问题。脚本仅在今天工作。如果td中的日期低于一周且大于一周,则其余的ifs应设置类。

$('td:nth-child(7) ').each(function() {

        var today = new Date();
        var week = new Date();
        var dd = today.getDate();
        var ddd = today.getDate()+7;
        var mm = today.getMonth()+1;
        var yyyy = today.getFullYear();

        if(dd<10) {
            dd = '0'+dd
        } 

        if(mm<10) {
            mm = '0'+mm
        } 

        today = dd + '/' + mm + '/' + yyyy;

        if ($(this).text() == today) {
            $(this).closest("td").addClass("red");
        }
        if ($(this).text() < today + 7 && $(this).text() != today ) {
            $(this).closest("td").addClass("yellow");
        }
        if ($(this).text() > today + 7) {
            $(this).closest("td").addClass("green");
        }
    });

2 个答案:

答案 0 :(得分:0)

尝试类似

的内容
    var displayedDate = new Date($(this).text());
    var today = new Date();
    if (displayedDate > today.setDate(today.getDate() + 7) {
      // here displayed date is posterior to today + 7 days

    }

答案 1 :(得分:0)

您正在比较字符串,而不是日期。您应该将单元格中的日期转换为Date object

在比较日期的相等性时,您应该使用valueOf()来避免参考比较。

这是一个有效的例子:

$('td').each(function() {

  var today = new Date();
  today.setHours(0,0,0,0);
  
  var nextWeek = new Date(today);
  nextWeek.setDate(nextWeek.getDate() + 7);
  
  var cellDateParts = $(this).text().split("/");
  var cellDate = new Date(cellDateParts[2], parseInt(cellDateParts[1]) - 1, cellDateParts[0]);
  
  if (cellDate.valueOf() === today.valueOf()) {
    $(this).closest("td").addClass("red");
  } else if (cellDate < nextWeek) {
    $(this).closest("td").addClass("yellow");
  } else if (cellDate > nextWeek) {
    $(this).closest("td").addClass("green");
  }
});
.red {
  background: red;
}

.yellow {
  background: yellow;
}

.green {
  background: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <td>07/07/2017</td>
  <td>07/08/2017</td>
  <td>23/07/2017</td>
</table>