In PHP development, time processing is a very common requirement. We may need to convert a time in string format into a timestamp, or we may need to convert the timestamp into a readable format. Of course, there is also a common need to convert hours, minutes and seconds into seconds. So, how to achieve this conversion? This article will introduce some implementation methods.
Method 1: strtotime function
PHP built-in functionstrtotime()
Can parse a human-readable date and time string into a UNIX timestamp. Based on this function, we can convert hours, minutes and seconds into seconds. The specific implementation code is as follows:
function hmsToSeconds($hms) { $seconds = strtotime("1970-1-1 $hms UTC"); return date('H:i:s', $seconds); }
Among them, $hms
is the hours, minutes and seconds, and the format is H:i:s
, for example 11:00:30
. We first concatenate the hours, minutes, seconds and a UNIX time point (1970-1-1) into a complete time string, and then use the strtotime()
function to convert it into a UNIX timestamp. Finally, format the converted seconds into hours, minutes and seconds for output.
It should be noted that since the strtotime()
function uses the current time zone by default, we need to set it to use the UTC
time zone, otherwise time differences may occur, resulting in the calculation of seconds. An error occurred.
Method 2: explode function
In addition to using the strtotime()
function, we can also use the explode()
function to convert the hours, minutes and seconds characters The string is divided according to :
, then each part is converted into seconds, and then added to get the total number of seconds. The specific implementation code is as follows:
function hmsToSeconds($hms) { list($hours, $minutes, $seconds) = explode(':', $hms); return $hours * 3600 + $minutes * 60 + $seconds; }
Among them, the list()
function is used to assign the array elements obtained through the explode()
function to the corresponding variables. We assign the three elements of hours, minutes, and seconds to the three variables $hours
, $minutes
, $seconds
, and then convert them into seconds. , and then add them to get the total number of seconds.
It should be noted that if a certain part of the hour, minute, and second string is an odd number (for example, 01
), you need to ensure that there are no leading zeros when passing it into the function, otherwise it may be parsed as an octal number. and an error occurs.
Method 3: DateTime class
In addition to using the built-in function, we can also use the DateTime
class provided by PHP to convert hours, minutes and seconds into total seconds. The specific implementation code is as follows:
function hmsToSeconds($hms) { $time = date_create_from_format('H:i:s', $hms); return $time->getTimestamp() - strtotime('today'); }
First, we use the date_create_from_format()
function to format $hms
into H:i:s
time object. Then, use the getTimestamp()
method to obtain the UNIX timestamp corresponding to the object, and then subtract the UNIX timestamp at 0:00 today to get the total number of seconds of this time relative to 0:00 today.
It should be noted that since the date_create_from_format()
function returns a DateTime
object, you need to use the object's method to obtain the timestamp value.
Summary
In PHP development, converting hours, minutes and seconds into seconds is a common requirement. We can use the built-in functions strtotime()
and explode()
, or we can use the DateTime
class to achieve conversion through different methods. It should be noted that there are certain differences between different methods in terms of accuracy, legality, and difficulty of use. It is necessary to select the most suitable conversion method according to the specific situation.
The above is the detailed content of How to convert hours, minutes and seconds into seconds in php. For more information, please follow other related articles on the PHP Chinese website!