常见的PHP时间格式转为时间戳的方法有哪些
前言:
PHP中处理时间的函数非常丰富,可以用来进行时间格式的转换和处理。有时候我们需要将常见的时间格式转化为时间戳,以便于进行时间的计算和比较。本文将介绍几种常见的PHP时间格式转为时间戳的方法。
方法一:strtotime()
strtotime() 函数可以将人类可读的时间格式转化为时间戳。它接受一个表示时间的字符串,然后返回与 Unix 纪元(January 1 1970 00:00:00 GMT)的秒数。下面是一个使用 strtotime() 函数将常见的时间格式转为时间戳的示例:
$date = "2022-06-30 10:30:00"; $timestamp = strtotime($date); echo $timestamp;
运行上述代码,将输出 1677660600,表示时间 "2022-06-30 10:30:00" 对应的时间戳。strtotime() 函数还支持一系列其他时间格式,如:YYYY-MM-DD、YYYY/MM/DD、YYYY.MM.DD、YYYY-MM-DD HH:II:SS 等等。但也注意,strtotime() 函数对于一些特殊格式的时间可能无法正确识别。
方法二:DateTime类
PHP的DateTime类可以方便地进行时间的转换和计算。通过DateTime类的createFromFormat方法,可以根据指定的时间格式创建一个DateTime对象,然后利用getTimestamp方法获取该对象对应的时间戳,示例如下:
$dateString = "2022-06-30 10:30:00"; $format = "Y-m-d H:i:s"; $dateTime = DateTime::createFromFormat($format, $dateString); $timestamp = $dateTime->getTimestamp(); echo $timestamp;
上述代码中的$dateString是时间字符串,$format是时间的格式,"Y-m-d H:i:s"表示年-月-日 时:分:秒。通过createFromFormat方法创建一个DateTime对象,然后调用getTimestamp方法获取时间戳。运行上述代码,将输出 1677660600。
方法三:date_parse()
PHP的date_parse()函数可以将一个表示时间的字符串解析为关联数组。这个数组中包含了年、月、日、时、分、秒等时间部分的数值。我们可以根据这些数值来构造一个对应的时间戳。下面是一个使用date_parse()函数将时间字符串解析为时间戳的示例代码:
$dateString = "2022-06-30 10:30:00"; $dateArray = date_parse($dateString); $timestamp = mktime($dateArray['hour'], $dateArray['minute'], $dateArray['second'], $dateArray['month'], $dateArray['day'], $dateArray['year']); echo $timestamp;
上述代码中,date_parse函数将时间字符串解析为一个关联数组$dateArray,然后使用mktime函数根据关联数组中的年、月、日、时、分、秒构造一个时间戳。运行上述代码,将输出 1677660600。
总结:
本文介绍了三种常见的方法来将PHP时间格式转为时间戳。使用strtotime()函数可以方便地将常见的时间格式转化为时间戳,但对于一些特殊格式的时间可能无法正确解析。使用DateTime类可以更好地进行时间的转换和计算,并且支持自定义的时间格式。使用date_parse()函数可以将时间字符串解析为关联数组,然后利用mktime函数构造时间戳。具体选择哪种方法取决于时间字符串的格式以及具体的需求。