I don't know why nobody mention Carbon yet.
https://github.com/briannesbitt/Carbon
This is actually an extension to php dateTime (which was already used here) and it has: diffForHumans method. So all you need to do is:
$dt = Carbon::parse('2012-9-5 23:26:11.123789');
echo $dt->diffForHumans();
more examples: http://carbon.nesbot.com/docs/#api-humandiff
Pros of this solution:
- it works for future dates and will return something like in 2 months etc.
- you can use localization to get other languages and the pluralization works fine
- if you will start using Carbon for other things working with dates will be as easy as never.