Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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或Javascript/Jquery-计算新生儿/成人的年龄_Javascript_Php_Jquery_Date - Fatal编程技术网

PHP或Javascript/Jquery-计算新生儿/成人的年龄

PHP或Javascript/Jquery-计算新生儿/成人的年龄,javascript,php,jquery,date,Javascript,Php,Jquery,Date,我看到的所有函数都是从出生日期算起的年差,我想用几个月甚至几天来计算年龄 php中的示例: $date = "2015-05-23"; /* whatever */ echo "Has 2 months and 8 days"; $date = "2012-10-30"; /* whatever */ echo "Has 2 years and 2 months"; 不管它是在javascript/jquery还是php中 谢谢大家 您可以在PHP中使用此代码来获取从一个日期到当前日期或其他

我看到的所有函数都是从出生日期算起的年差,我想用几个月甚至几天来计算年龄

php中的示例:

$date = "2015-05-23";
/* whatever */
echo "Has 2 months and 8 days";

$date = "2012-10-30";
/* whatever */
echo "Has 2 years and 2 months";
不管它是在javascript/jquery还是php中


谢谢大家

您可以在PHP中使用此代码来获取从一个日期到当前日期或其他日期的天数、月份和年份差

<?php
$date = "2015-07-17";

$difference = strtotime(date("Y-m-d")) - strtotime($date);

$days = abs(round($difference / 86400,0));
$years = abs(round($days /365,0));
$months = abs(round($years/12,0));
echo "Difference in Days: $days| Months: $months| Years: $years";

您可以在PHP中使用此代码来获取日期与当前日期或其他日期之间的日、月和年差

<?php
$date = "2015-07-17";

$difference = strtotime(date("Y-m-d")) - strtotime($date);

$days = abs(round($difference / 86400,0));
$years = abs(round($days /365,0));
$months = abs(round($years/12,0));
echo "Difference in Days: $days| Months: $months| Years: $years";

在php中,您可以尝试以下方法:

$date1=date_create("2013-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2);
echo ($diff->format("%a"));

它将返回以天数为单位的差异,这些天数也可以转换为月份和年份。

在php中,您可以尝试以下方法:

$date1=date_create("2013-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2);
echo ($diff->format("%a"));

它将返回以天数为单位的差异,这些天数也可以以月和年为单位进行转换。

我修改了一些代码以得到我想要的。除了所有的例外情况(如果某一年/月/日为0,则不显示),此项工作非常完美

如果有人也需要我的PHP代码,我将与您分享

echo getAge("10-02-2014");

function getAge($fecha) {
/* $fecha => d-m-Y (in this format!!) */
$dob = strtotime($fecha);
$current_time = time();
$age_years = date('Y',$current_time) - date('Y',$dob);
$age_months = date('m',$current_time) - date('m',$dob);
$age_days = date('d',$current_time) - date('d',$dob);

if ($age_days<0) {
    $days_in_month = date('t',$current_time);
    $age_months--;
    $age_days= $days_in_month+$age_days;
}
if ($age_months<0) {
    $age_years--;
    $age_months = 12+$age_months;
}
$todayString = date('d',$current_time).'-'.date('m',$current_time).'-'.date('Y',$current_time);
/* keep in mind $today is always superior than $fecha */
if($fecha == $todayString){
   return "Today"; 
}  else if(date('Y',$dob) == date('Y',$current_time) && $age_months == "0") {
    return $age_days . " day".plural($age_days);
} else if(date('Y',$dob) == date('Y',$current_time) && $age_days != "0") {
    return $age_months ." month".plural($age_months)." and ".$age_days ." day".plural($age_days);
} else if(date('Y',$dob) == date('Y',$current_time) && $age_days == "0") {
    return $age_months . " month".plural($age_months);
} else if($age_years != "0" &&  $age_months != "0" && $age_days == "0") {
    return $age_years . " year".plural($age_years)." and ".$age_months." month".plural($age_months);
}  else if($age_years != "0" &&  $age_months == "0" && $age_days != "0") {
    return $age_years . " year".plural($age_years)." and ".$age_days." day".plural($age_days);
} else if($age_years != "0" &&  $age_months == "0" && $age_days == "0") {
    return $age_years . " year".plural($age_years);
} else { /* if you want to show the days always, add ----> ." and ".$age_days." day".plural($age_days) <---- below */
    return $age_years. " year".plural($age_years)." and ".$age_months." month".plural($age_months);
} }

function plural($num) {
if($num!="1"){
    return "s";
} }

我修改了一些代码以得到我想要的。除了所有的例外情况(如果某一年/月/日为0,则不显示),此项工作非常完美

如果有人也需要我的PHP代码,我将与您分享

echo getAge("10-02-2014");

function getAge($fecha) {
/* $fecha => d-m-Y (in this format!!) */
$dob = strtotime($fecha);
$current_time = time();
$age_years = date('Y',$current_time) - date('Y',$dob);
$age_months = date('m',$current_time) - date('m',$dob);
$age_days = date('d',$current_time) - date('d',$dob);

if ($age_days<0) {
    $days_in_month = date('t',$current_time);
    $age_months--;
    $age_days= $days_in_month+$age_days;
}
if ($age_months<0) {
    $age_years--;
    $age_months = 12+$age_months;
}
$todayString = date('d',$current_time).'-'.date('m',$current_time).'-'.date('Y',$current_time);
/* keep in mind $today is always superior than $fecha */
if($fecha == $todayString){
   return "Today"; 
}  else if(date('Y',$dob) == date('Y',$current_time) && $age_months == "0") {
    return $age_days . " day".plural($age_days);
} else if(date('Y',$dob) == date('Y',$current_time) && $age_days != "0") {
    return $age_months ." month".plural($age_months)." and ".$age_days ." day".plural($age_days);
} else if(date('Y',$dob) == date('Y',$current_time) && $age_days == "0") {
    return $age_months . " month".plural($age_months);
} else if($age_years != "0" &&  $age_months != "0" && $age_days == "0") {
    return $age_years . " year".plural($age_years)." and ".$age_months." month".plural($age_months);
}  else if($age_years != "0" &&  $age_months == "0" && $age_days != "0") {
    return $age_years . " year".plural($age_years)." and ".$age_days." day".plural($age_days);
} else if($age_years != "0" &&  $age_months == "0" && $age_days == "0") {
    return $age_years . " year".plural($age_years);
} else { /* if you want to show the days always, add ----> ." and ".$age_days." day".plural($age_days) <---- below */
    return $age_years. " year".plural($age_years)." and ".$age_months." month".plural($age_months);
} }

function plural($num) {
if($num!="1"){
    return "s";
} }

您所要做的就是使用now而不是第二个日期,然后根据需要格式化输出。由于长度可变,使用setDate或setUTCDate来
0
您可以找到上个月的天数,因此您可以找到任何月份的天数,因此,如果你有一个负的月差日数,你可以找到这个数值加上的数字(并从月差中减去一个),我强烈建议你在这个时候使用一个库-我想到了.js。。。。JS中的日期很难处理,PHP也没有那么好。你所要做的就是现在使用它,而不是第二个日期,然后按照你的意愿格式化输出。由于长度可变,所以执行月份比较困难,通过使用setDate或setUTCDate来
0
你可以找到上个月的天数,因此,您可以找到任何月份的天数,因此,如果您的月天数差为负数,您可以找到要添加到该值的数字(并从月差中减去一个),我强烈建议您为此使用库-moment.js浮现在脑海中。。。。JS中的日期很难处理,PHP也没有那么好