我有这段代码:
$('.date span').each(function(){
var date_search = $(this).text();
var birthdate_search = new Date(date_search);
var cur_search = new Date();
var diff_search = cur-birthdate_search;
var age_search = Math.floor(diff/31536000000);
$(this).text(age_search+" years old");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="date">
<span>05/08/1993</span>
</div>
<div class="date">
<span>05/08/1996</span>
</div>
我正在尝试将每个<div>
中的生日转换为实际年龄(生日日期为1993
- &gt; 22 years old
),但它不起作用。
答案 0 :(得分:2)
您使用了cur
和diff
,并且您打算使用cur_search
和diff_search
。
var birthdate_search = new Date(date_search);
var cur_search = new Date();
var diff_search = cur_search - birthdate_search; // <- here
var age_search = Math.floor(diff_search / 31536000000); // <- here
答案 1 :(得分:2)
这是一个明确简单易行的年龄方法。使用基本数学,速度超快。此外,该方法本身只需要一个基本的日期字符串,就像您使用Date
对象一样。因此,它几乎可以与任何datepicker
类型的插件一起使用。
function getAge(bdate) {
return ~~((new Date() - new Date(bdate)) / (60*60*24*365.2425*1000))
}
通过以下stringstream
查看易用性!
function getAge(bdate) { return ~~((new Date()-new Date(bdate))/(31556952000)) }
$("#inpBirthDate").datepicker({
changeMonth: true,
changeYear: true,
defaultDate: '7/5/1980',
yearRange: '1950:2010'
})
.on('change', function(e) {
$('#inpAge').val(getAge($(this).val()));
});
#inpAge {
background-color: transparent;
border: none;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<label for="inpBirthDate">Birth Date</label>
<input type="text" id="inpBirthDate">
<hr />
<label for="inpAge">Age</label>
<input type="text" id="inpAge" readonly>