Calculate years from date

后端 未结 4 776
迷失自我
迷失自我 2020-12-15 22:36

I\'m looking for a function that calculates years from a date in format: 0000-00-00. Found this function, but it wont work.

// Calculate the age from a given         


        
4条回答
  •  无人及你
    2020-12-15 23:25

    Your code doesn't work because the function is not returning anything to print.

    As far as algorithms go, how about this:

    function getAge($then) {
        $then_ts = strtotime($then);
        $then_year = date('Y', $then_ts);
        $age = date('Y') - $then_year;
        if(strtotime('+' . $age . ' years', $then_ts) > time()) $age--;
        return $age;
    }
    print getAge('1990-04-04'); // 19
    print getAge('1990-08-04'); // 18, birthday hasn't happened yet
    

    This is the same algorithm (just in PHP) as the accepted answer in this question.

    A shorter way of doing it:

    function getAge($then) {
        $then = date('Ymd', strtotime($then));
        $diff = date('Ymd') - $then;
        return substr($diff, 0, -4);
    }
    

提交回复
热议问题