2017-10-17 100 views
0

我想使用此函数从我的表中获取最新的日期值。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只返回之日起的第一个值。

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

谢谢!

+0

你的表是什么样子? – Vineesh

+0

@Vineesh编辑了代码。尼萨尔,我看到这篇文章,我不能使用这种情况下的代码。 –

回答

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>

+0

使用Chrome。任何关于如何在Firefox上使用它的想法?谢谢! –

+0

Firefox错误:maxDate.replace不是函数 –

+0

更新了解决方案。请立即检查。 –

0

(我没有权利对我的post.your问题您post.please评论评论还不清楚,但我能理解你的解释。)

这里是你想要修改的逻辑输出:

(提示:你必须重复的行/ 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> 
+0

嗨!同样的回报在这里 –

+0

需要转换为日期。 'parseInt()'只返回前两位数字 – charlietfl

+0

感谢reply.is 17/10/2017是你的日期格式? –