Jquery从表列返回最近的日期

时间:2017-10-17 12:26:51

标签: javascript jquery

我试图使用此功能从我的表中获取最新的日期值。

function getdate() {
  var index = $('#csvtext table').find('th:contains("DATE")').index();
  var max = 0;

  $('#csvtext table tr td:eq(' + index + ')').each(function() {
    $this = parseInt( $(this).text() );
    if ($this > max) 
      max = $this
  });
  return max;
}

表:

<tbody>
<tr><td>1</td><td>17/10/2017</td><td>CA5533</td></tr>
<tr><td>2</td><td>15/10/2017</td><td>CA5533</td></tr>
</tbody>

问题是,max仅返回我的列DATE中日期的第一个值。

如何从此列中的所有值返回最近日期的值?

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以将DD/MM/YYYY格式的日期转换为MM/DD/YYYY,然后使用getTime()进行比较,然后返回结果。

function getdate() {
  let maxDate = '01/01/1970';
  
  $('table tr td:nth-child(2)').each(function(){
    var date = $(this).text().replace(/(..)\/(..)\/(...)/, '$2/$1/$3');
    if(new Date(maxDate).getTime() < new Date(date).getTime()){
      maxDate = date;
    }
  });
  
  return maxDate.replace(/(..)\/(..)\/(....)/, '$2/$1/$3');
}
console.log(getdate());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tbody>
  <tr><td>1</td><td>17/10/2017</td><td>CA5533</td></tr>
  <tr><td>2</td><td>15/10/2017</td><td>CA5533</td></tr>
  </tbody>
</table>

答案 1 :(得分:0)

(我没有权利对你的帖子发表评论。请对我的帖子发表评论。你的问题不清楚,但我能理解你的解释。)

以下是所需输出的修改逻辑:

(提示:你必须迭代rows / tr并且需要在列循环中获取列/ td。)

 <!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
function getdate() {

          var index = 1;

          var max = null;
          $('table tr').each(function() {

             var date =  $(this).find('td:eq(' + index +')').html().split('/') ;

               var $this= new Date(date[2], date[1], date[0]);
               console.log($this);
               alert($this);
               if ($this > max) max = $this
            });
            return max;

}

$(document).ready(function(){
   var value=getdate();
   alert(value);
});
</script>
</head>
<body>

<table>
<tbody>
<tr><td>1</td><td>17/10/2017</td><td>CA5533</td></tr>
<tr><td>2</td><td>15/10/2017</td><td>CA5533</td></tr>
</tbody>
</table>
</body>
</html>