Home > Backend Development > PHP Tutorial > How to Calculate and Format Elapsed Time Since a Date in PHP?

How to Calculate and Format Elapsed Time Since a Date in PHP?

Susan Sarandon
Release: 2024-12-16 15:04:10
Original
121 people have browsed it

How to Calculate and Format Elapsed Time Since a Date in PHP?

Finding Time Elapsed Since a Date Time in PHP

Determining the time elapsed since a specific date and time can be useful in various applications, such as displaying the time since an event occurred. In PHP, there are ways to calculate and format the time elapsed in a user-friendly manner.

Calculating Elapsed Time

To calculate the elapsed time between a given date time and the current time, you can use the strtotime() function to convert the string representation of the date time into a timestamp. The timestamp can then be subtracted from the current timestamp, which represents the current time in seconds since the Unix epoch (January 1, 1970 UTC).

For example:

$time = strtotime('2010-04-28 17:25:43');
$elapsedTime = time() - $time;
Copy after login

Formatting Elapsed Time

Once you have the elapsed time as a number of seconds, you can format it in a user-friendly manner. A common approach is to convert the seconds into units such as minutes, days, or years. You can use a loop to iterate through a list of units and their corresponding number of seconds, then return the appropriate unit and its value.

For instance, the following function calculates and formats the elapsed time:

function humanTiming($time) {
    $tokens = array (
        31536000 => 'year',
        2592000 => 'month',
        604800 => 'week',
        86400 => 'day',
        3600 => 'hour',
        60 => 'minute',
        1 => 'second'
    );

    foreach ($tokens as $unit => $text) {
        if ($time < $unit) continue;
        $numberOfUnits = floor($time / $unit);
        return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
    }
}
Copy after login

Example Usage

To use this function, you can simply pass the timestamp as an argument:

$time = strtotime('2010-04-28 17:25:43');
echo 'Event happened '.humanTiming($time).' ago';
Copy after login

This will output the elapsed time in a format suitable for user display, such as "Event happened 4 days ago" or "Event happened 1 minute ago".

The above is the detailed content of How to Calculate and Format Elapsed Time Since a Date in PHP?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template