1k views
Calculate a distance of time in words
This is a really useful function that calculates the distance of time between two dates in PHP. For example "half a minute" or "3 months".
PHP
- // Returns the distance of time in words between two dates
- function distance_of_time_in_words($from_time, $to_time = null, $include_seconds = false)
- {
- $string = '';
- if ($distance_in_minutes <= 1)
- {
- if (!$include_seconds)
- {
- $string = $distance_in_minutes == 0 ? 'less than a minute' : '1 minute';
- }
- else
- {
- if ($distance_in_seconds <= 5)
- {
- $string = 'less than 5 seconds';
- }
- else if ($distance_in_seconds >= 6 && $distance_in_seconds <= 10)
- {
- $string = 'less than 10 seconds';
- }
- else if ($distance_in_seconds >= 11 && $distance_in_seconds <= 20)
- {
- $string = 'less than 20 seconds';
- }
- else if ($distance_in_seconds >= 21 && $distance_in_seconds <= 40)
- {
- $string = 'half a minute';
- }
- else if ($distance_in_seconds >= 41 && $distance_in_seconds <= 59)
- {
- $string = 'less than a minute';
- }
- else
- {
- $string = '1 minute';
- }
- }
- }
- else if ($distance_in_minutes >= 2 && $distance_in_minutes <= 44)
- {
- $string = '%minutes% minutes';
- $parameters['%minutes%'] = $distance_in_minutes;
- }
- else if ($distance_in_minutes >= 45 && $distance_in_minutes <= 89)
- {
- $string = 'about 1 hour';
- }
- else if ($distance_in_minutes >= 90 && $distance_in_minutes <= 1439)
- {
- $string = 'about %hours% hours';
- }
- else if ($distance_in_minutes >= 1440 && $distance_in_minutes <= 2879)
- {
- $string = '1 day';
- }
- else if ($distance_in_minutes >= 2880 && $distance_in_minutes <= 43199)
- {
- $string = '%days% days';
- }
- else if ($distance_in_minutes >= 43200 && $distance_in_minutes <= 86399)
- {
- $string = 'about 1 month';
- }
- else if ($distance_in_minutes >= 86400 && $distance_in_minutes <= 525959)
- {
- $string = '%months% months';
- }
- else if ($distance_in_minutes >= 525960 && $distance_in_minutes <= 1051919)
- {
- $string = 'about 1 year';
- }
- else
- {
- $string = 'over %years% years';
- }
- }
Submitted by miguelSantirso over 2 years ago — last modified less than a minute ago