【问题标题】:How to calculate age from given data on input field?如何根据输入字段的给定数据计算年龄?
【发布时间】:2017-05-03 12:35:31
【问题描述】:

我已经搜索过,但我的问题没有得到完美的解决方案。我可以以正常方式计算年龄。但我不知道如何根据输入字段上的给定数据计算年龄。我使用过 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 是动态的,它会插入并希望在不加载页面的情况下立即显示年龄计算。有什么线索吗?提前致谢。

【问题讨论】:

    标签: javascript php jquery laravel jquery-ui


    【解决方案1】:

    jQuery 日期选择器在带有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()}
        });
    });
    

    【讨论】:

    • 感谢您的描述。 :)
    【解决方案2】:

    如果你想在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

    希望这会有所帮助!

    【讨论】:

    • 我的问题不是计算年龄领域?
    【解决方案3】:

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

    例如,如果您的日期字段具有 id="date-picker",那么您可以将日期读取为 $("date-picker").val() 或 document.getElementById("date-picker").value ()

    【讨论】:

      猜你喜欢
      • 2011-05-26
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2022-12-14
      • 2013-10-31
      相关资源
      最近更新 更多