如何从PHP时间字符串中仅提取小时数据?

时间:2010-11-25 16:41:05

标签: php mysql

我在数据库中收集时间记录的格式为'09:51:06'(小时,分钟,秒)。

我有一个查询从数据库中检索这些时间,但我只关心小时参考。

如何摆脱字符串的其余部分,只是将小时广告到数组中?所以在上面的例子中,我只想保留'09'。

我已经研究了爆炸和子串,但似乎无法弄明白。

感谢。

4 个答案:

答案 0 :(得分:9)

爆炸字符串看起来像这样(您可能希望添加intval()以便能够将其用作实数):

$hours = array_shift(explode(':', '09:51:06'));

但是你可能正在寻找合适的查询,而不是事后这样做。如果您正在处理时间类型,则可以使用MySQL的date and time functions(在这种情况下为HOUR()):

SELECT HOUR(`time_column`) AS `hour` FROM `your_table`

答案 1 :(得分:1)

或者来自数据库本身

SELECT TIME_FORMAT(field_name, '%H') as return_hour from table_name

答案 2 :(得分:1)

$time_string='09:51:06';
$your_array[$array_index]=substr($time_string, 0, 2);

for more info on substr

答案 3 :(得分:0)

我猜你可以通过字符串操作或时间/日期来做到这一点。任何有价值的日期方式都在SQL方面,PHP有mktime和日期函数,但如果你要构建一个日期,那么你将获得你在寻找中间的时间

字符串

$thisHour = array_shift(explode(':', $timeString));  //this gets hour
$thisHour - substr($timeString, 0, 2);              // or this
$hours[] = $thisHour;                               //this adds to array