[英]How to calculate age from given data on input field?
我已經搜索過,但是我沒有完美解決問題的方法。我可以按正常方式計算年齡。但是我不知道如何從輸入字段中的給定數據中計算年齡。我已經使用jQuery DatePicker作為輸入字段我的代碼:
$birthday = new DateTime('1970-02-01');
$to = new DateTime('today');
echo $birthday ->diff($to)->y.' Years, '.$birthday ->diff($to)->m.' Months, '.$birthday ->diff($to)->d.' Days ';
這是我的領域:
現在我希望$birthday
是動態的,它將插入並希望立即顯示年齡計算而無需頁面加載。 有什么線索嗎? 提前致謝。
jQuery datepicker在輸入字段中顯示日期,其中id="datepicker"
可用於獲取日期。 對於客戶端計算,其他答案中提到的momentjs
庫是否適合此工作。
fromdate = $('#datepicker').val(); console.log(fromdate);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <input type="text" id="datepicker" class="hasDatepicker" value="2016/14/12">
如果要計算服務器端,可以將該值傳遞給PHP,而無需使用Ajax重新加載頁面:
$('#datepicker').change(function(){
$.ajax({
type: "POST",
url: "datecalc.php",
data: {text:$(this).val()}
});
});
如果要在jQuery中計算年齡,則可以像下面這樣使用moment.js
:
moment("05/05/1998", "MM/DD/YYYY").month(0).from(moment().month(0));
// Output = 22 years ago
$(function() { var dob = $('.dob').val(); $('.dob').on('input', function(e) { var a = moment($(this).val(), "MM/DD/YYYY").month(0).from(moment().month(0)) console.log(a); }); var a = moment($('.dob').val(), "MM/DD/YYYY").month(0).from(moment().month(0)) console.log(a); })
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input class='dob' type='text' value="05/05/1996">
在控制器內部,您可以使用Carbon的age
方法,如下所示:
$birthday = Carbon\Carbon::parse('1970-02-01');
$age = $birthday->age;
// Output - (int) 46
請參閱Carbon Docs以供參考
希望這可以幫助!
您需要使用JQuery或Javascript讀取數據輸入字段的值,然后將該值傳遞給年齡計算函數。
例如,如果您的日期字段具有id =“ date-picker”,則可以將日期讀取為$(“ date-picker”)。val()或document.getElementById(“ date-picker”)。value()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.