如何根据输入字段的给定数据计算年龄?

时间:2016-12-18 06:17:17

标签: javascript php jquery laravel jquery-ui

我已经搜索了但我没有完全解决我的问题。我可以正常计算年龄。但我不知道如何从输入字段的给定数据计算年龄.I使用 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 ';

这是我的领域:

enter image description here

现在我希望$birthday将是动态的,它将插入并希望立即显示年龄计算而不加载页面。有任何线索吗?提前谢谢。

3 个答案:

答案 0 :(得分:2)

jQuery日期选择器在输入字段中显示日期,<tr>可用于获取日期。对于客户端计算,在其他答案中提到的id="datepicker"库是否适合此工作。

momentjs
fromdate = $('#datepicker').val();
console.log(fromdate);

如果要计算服务器端,可以将值传递给PHP,而无需使用Ajax重新加载页面:

<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">

答案 1 :(得分:1)

如果你想在jQuery中计算年龄,你可以像这样使用moment.js

moment("05/05/1998", "MM/DD/YYYY").month(0).from(moment().month(0));
// Output = 22 years ago

&#13;
&#13;
$(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);
})
&#13;
<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">
&#13;
&#13;
&#13;

在您的控制器中,您可以使用Carbon的age方法,如下所示:

$birthday = Carbon\Carbon::parse('1970-02-01');
$age = $birthday->age;
// Output - (int) 46
  

请参阅Carbon Docs以获取参考资料

希望这有帮助!

答案 2 :(得分:1)

您需要使用JQuery或Javascript读取数据输入字段的值,然后将该值传递给您的年龄计算函数。

例如,如果您的日期字段具有id =&#34;日期选择器&#34;,那么您可以将日期读作$(&#34;日期选择器&#34;)。val()或文档。的getElementById(&#34;日期选择&#34)。值()