Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过出生日期获得年龄_Php - Fatal编程技术网

Php 如何通过出生日期获得年龄

Php 如何通过出生日期获得年龄,php,Php,我想通过php在var$birth\u date中获得以下日期的确切年龄,它是怎样的 $birth\u date=2011/12/16 $birth_date=>例如,这是我的出生日期 例如,我的出生日期输出为:0年、0月、1天 <?php //calculate years of age (input string: YYYY-MM-DD) function birthday ($birthday, $separator){ list($year,$month,$day

我想通过php在var
$birth\u date
中获得以下日期的确切年龄,它是怎样的

$birth\u date=2011/12/16

$birth_date=>例如,这是我的出生日期

例如,我的出生日期输出为:
0年、0月、1天


<?php

  //calculate years of age (input string: YYYY-MM-DD)
  function birthday ($birthday, $separator){
    list($year,$month,$day) = explode($separator, $birthday);
    $year_diff  = date("Y") - $year;
    $month_diff = date("m") - $month;
    $day_diff   = date("d") - $day;
    if ($day_diff < 0 || $month_diff < 0)
      $year_diff--;
    return $year_diff;
  }
  echo getAge('2010/12/16', '/');
?>
从重新格式化


我还建议使用unix时间戳来处理生日是个坏主意,因为它们的范围非常有限(1970-2038)。改用php的内置
DateTime
类:

$then = DateTime::createFromFormat("Y/m/d", "2011/12/16");
$diff = $then->diff(new DateTime());
echo $diff->format("%y year %m month %d day\n");

请再读一遍我的帖子。我想从这个日期开始计算年龄:
2011/12/16
如果你用“/”替换“-”,它应该会起作用。@KateWintz,说真的,你甚至不能花2秒钟的时间看一下代码,看看你是否需要更改
explode(“-”,$birthday)
分解(“/”,美元生日)使其适用于您的格式?请至少试着从提供的答案中学习,而不要认为StackOverflow是你自己的个人编码机器。看这里,不要工作:你意识到你必须调用一个函数才能工作吗?请使用搜索功能。这已经被问过多次了。