php strtotime 中+day 或者 +days 的不同

+3 day:
echo date( 'Y-m-d H:i:s', strtotime( '+3 day' ) );

+3 days:
echo date( 'Y-m-d H:i:s', strtotime( '+3 days' ) );

输出的结果都是相同的。

下面都是相似的用法
strtotime( '+1 day' );
strtotime( '+3 day' );
strtotime( '+1 days' );
strtotime( '+3 days' );
strtotime( '+1 weeks' );
strtotime( '+3 week' );

出现这个问题的原因是php不是一个严格的编程语言。

php根据生日计算年龄

//php根据生日计算年龄
$birth='1986-12-05';
$age=getAgeByBirthday($birth);

/**
 * 根据生日获取年龄
 * 过了这年的生日才算多了1周岁
 */
function getAgeByBirthday($birth){
    
    //获得出生年月日的时间戳
    $date=strtotime($birth);
    
    //获得今日的时间戳
    $today=strtotime('today');

    //得到两个日期相差的大体年数
    $diff=floor(($today-$date)/86400/365);

    //strtotime加上这个年数后得到那日的时间戳后与今日的时间戳相比
    $age=strtotime($birth.'+'.$diff.'years')>$today?($diff+1):$diff;

    return $age;
}