我试图使用此功能从我的表中获取最新的日期值。
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 :(得分: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>