簡體   English   中英

如何根據輸入字段上的給定數據計算年齡?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM