在剑道网格列中检查日期是否为今天的日期

时间:2015-07-21 13:36:20

标签: javascript datetime kendo-ui kendo-grid

我正在列中显示日期,如果是今天的日期,应该应用css类,如果没有,只显示日期。我试着这样解决:

  template: "#if(Date == new Date()) {#<div class='todayClass'>#= kendo.toString(kendo.parseDate(Date, 'yyyy-MM-dd'), 'dd-MM-yyyy') #</div>#} else{#= kendo.toString(kendo.parseDate(Date, 'yyyy-MM-dd'), 'dd-MM-yyyy') #}#",

但是我收到错误:&#34;日期不是构造函数&#34;,是否有人知道如何解决它?感谢

1 个答案:

答案 0 :(得分:3)

您可以为dataBound事件创建一个函数,该函数遍历网格的行并检查该特定字段。

function checkDates() {
    var currentDate = new Date();
    currentDate = currentDate.setHours(0, 0, 0, 0); // eliminate the time from the date
    dataView = this.dataSource.view();
    for (var i = 0; i < dataView.length; i++) {
        // check if the fields match and apply a class to the row if so
        var mydate = dataView[i].Date.setHours(0, 0, 0, 0); // eliminate the time from the date
        if (mydate == currentDate) { // compare dates
            var uid = dataView[i].uid;
            $("#grid tbody").find("tr[data-uid=" + uid + "]").addClass("yourClass");
        }
    }
}

您可能需要使日期格式匹配,但另一个问题(不难解决)

修改

我已经为您解决了日期格式问题,这种方式确实有效,因为您可以在此fiddle确认