2017-10-01 7 views
0

に応じて、ディスプレイの正しい年齢は...私はこのような人物と年齢を含む行のTBODYと数xを持つテーブルを持っている日付値

   <tbody> 

        <tr> 
        <td class="number">4</td> 
        <td class="name">Name</td> 
        <td class="age" data-date="2004-11-22 00:00:00">13</td> 
        </tr> 
        <tr> 
        <td class="number">5</td> 
        <td class="name">Name</td> 
        <td class="age" data-date="2003-11-22 00:00:00">14</td> 
        </tr> 

私はすべての人の正しい年齢を表示したいと思いますこれは現在の日付に依存するので、代わりに誕生日に入ることを考えています。しかし、私はまだプレイヤーの実際の年齢を表示したい。どのようにしてテーブルのすべての行を反復処理するjQueryスクリプトを使用できますか?データ日付の値によって、対応するtdセルの実際の経過時間が表示されますか?

答えて

0

$('.age').each(function(i, e) { 
 
    var now = new Date(); 
 
    var date = new Date(e.dataset.date); 
 
    $(this).html(now.getFullYear() - date.getFullYear()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tbody> 
 
    <tr> 
 
     <td class="number">4</td> 
 
     <td class="name">Name</td> 
 
     <td class="age" data-date="2004-11-22 00:00:00"></td> 
 
    </tr> 
 
    <tr> 
 
     <td class="number">5</td> 
 
     <td class="name">Name</td> 
 
     <td class="age" data-date="2003-11-22 00:00:00"></td> 
 
    </tr> 
 
    </tbody> 
 
</table>

0

はたぶん、このような何か:

function getAge(dateString) { 
 
    var today = new Date(); 
 
    var birthDate = new Date(dateString); 
 
    var age = today.getFullYear() - birthDate.getFullYear(); 
 
    var m = today.getMonth() - birthDate.getMonth(); 
 
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) { 
 
     age--; 
 
    } 
 
    return age; 
 
} 
 

 
$('.age').each(function(index){ 
 
    $(this).html(getAge($(this).data('date'))); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tbody> 
 
    <tr> 
 
     <td class="number">4</td> 
 
     <td class="name">Name</td> 
 
     <td class="age" data-date="2004-11-22 00:00:00">13</td> 
 
    </tr> 
 
    <tr> 
 
     <td class="number">5</td> 
 
     <td class="name">Name</td> 
 
     <td class="age" data-date="2003-11-22 00:00:00">14</td> 
 
    </tr> 
 
    </tbody> 
 
</table>

はgetAge()関数は、ここから盗まれる:https://stackoverflow.com/a/7091965/2008111はので、多分あなたは、そのリンクをたどると、そこにも答えをupvote。

0

あなたのHTMLページには次のようにする必要があります:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
    <table class="persons"> 
     <tbody> 
     <tr> 
      <td class="number">4</td> 
      <td class="name">Name</td> 
      <td class="age" data-date="2004-11-22 00:00:00"></td> 
     </tr> 
     <tr> 
      <td class="number">5</td> 
      <td class="name">Name</td> 
      <td class="age" data-date="2003-11-22 00:00:00"></td> 
     </tr> 
     </tbody> 
    </table> 

JS側は次のようになります。

$(document).ready(function(){ 
    $('.persons td.age').each(fucntion(){ 
     var today = new Date(); 
     var birthday = new Date($(this).attr('data-date')); 
     var ageDifMs = today - birthday.getTime(); 
     var ageDate = new Date(ageDifMs); 
     $(this).html(Math.abs(ageDate.getUTCFullYear() - 1970));  
    }); 
}); 
関連する問題