-1

I have 2 time() values, for example:

1379078542
1379078574

How do I work out their diffidence and display the output as years, months, weeks, days, hours, minutes, seconds etc.

The 2 values above have a difference of 32 seconds I think, so in this case, I would want to display 32 seconds.

4

1 回答 1

6
$datetime1 = new DateTime('@1379078542');
$datetime2 = new DateTime('@1379078574');
$interval  = $datetime1->diff($datetime2);
$elapsed   = $interval->format('%y years, %m months, %a days, %h hours, %i minutes, %S seconds');
$elapsed   = str_replace(array('0 years,', ' 0 months,', ' 0 days,',  ' 0 hours,', ' 0 minutes,'), '', $elapsed);
$elapsed   = str_replace(array('1 years, ', ' 1 months, ', ' 1 days, ',  ' 1 hours, ', ' 1 minutes'), array('1 year, ', '1 month, ', ' 1 day, ', ' 1 hour, ', ' 1 minute'), $elapsed);
echo $elapsed;

See it in action

于 2013-09-13T13:39:37.303 回答