Time Manipulation in PHP: Adding and Subtracting 30 Minutes from H:i
In PHP, handling time-related tasks is crucial for various applications. One common scenario involves modifying time values formatted as "H:i." This format represents time in hours and minutes, such as "10:00" or "13:30."
To add or subtract specific time intervals from such values, we can utilize the strtotime() and date() functions. However, some unexpected behavior might occur if the initial time value is not appropriately formatted as a timestamp.
Let's consider an example where we aim to create two new values: $startTime 30 minutes before $time and $endTime 30 minutes after $time, where $time has the format "H:i."
The code snippet below may initially seem reasonable:
$startTime = date("H:i",strtotime('-30 minutes',$time));
$endTime = date("H:i",strtotime(' 30 minutes',$time));
However, upon passing "10:00" as $time, we encounter unexpected results: $startTime becomes "00:30" instead of the intended "09:30," and $endTime becomes "01:30" instead of "10:30."
The key issue lies in the initial assumption that $time is a timestamp. However, it is merely a string formatted as "H:i." To resolve this, we must first convert $time into a timestamp using the strtotime() function.
The corrected code:
$time = strtotime('10:00');
$startTime = date("H:i", strtotime('-30 minutes', $time));
$endTime = date("H:i", strtotime(' 30 minutes', $time));
Now, the results align with our expectations: $startTime becomes "09:30," and $endTime becomes "10:30." By ensuring that $time is a timestamp from the outset, we can perform accurate time manipulations in PHP.
Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.
Copyright© 2022 湘ICP备2022001581号-3