尝试将html日期时间与条件格式的当前时间进行比较

时间:2014-06-13 16:39:14

标签: javascript jquery sharepoint jquery-selectors

我有一个sharepoint讨论列表。有一个名为“Last Updated”的字段。我正在尝试突出显示上次更新大于1小时的行。

enter image description here

这就是我目前正在尝试的事情:

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <script src="https:////cdnjs.cloudflare.com/ajax/libs/moment.js/2.6.0/moment.min.js"></script>
        <script>
            $(document).ready(function(){
                var now = moment().format('l h:mm:ss a');
                console.log(now);

                //$row = $("td .ms-vb2:contains('6/13/2014 9:46 AM')");
                $rows = $("td[id$='WPQ3'] .ms-vb2:contains('AM'), td[id$='WPQ3'] .ms-vb2:contains('PM')");
                console.log($rows);
                $times = $rows.children
                $rows.parent().css("background-color", "rgba(203, 231, 57, 0.37)");

            });         
        </script>
    </head>
</html>

现在,每个单元格都会根据我的选择器突出显示。

$ rows包含2个对象,两个对象的innerText包含时间,因此类似“6/13/2014 9:46 AM”。

我不确定如何查看每一行的时间,将其与now变量进行比较,然后突出显示我的条件是否满足,即“如果差异小于1小时则突出显示”

1 个答案:

答案 0 :(得分:0)

我能够使用moment.js和jQuery的更多研究来解决这个问题。

这是我的解决方案:

        $(document).ready(function(){
            //STORE CURRENT TIME 
            var now = moment() 
            //GET ALL ROWS I'M TRYING TO HIGHLIGHT
            $rows = $("td[id$='WPQ3'] .ms-vb2:contains('AM'), td[id$='WPQ3'] .ms-vb2:contains('PM')");

            //GO THROUGH EACH ROW FOUND
            $.each($rows, function (index, row){

                //FOR EACH ROW CONVERT TIME INTO MOMEMTJS OBJECT
                var lastUpdateTime = moment(row.innerText)

                //USING MOMENT JS, FIND THE DIFFERENCE BETWEEN LAST UPDATE AND NOW
                var difference = now.diff(lastUpdateTime, 'hours');

                //IF THE DIFFERENCE IS LESS THAN AN HOUR HIGHLIGHT THE CURRENT ROWA
                if(difference <= 1){
                    $(this).parent().css("background-color", "rgba(203, 231, 57, 0.37)");
                }
            })
        });