代码之家  ›  专栏  ›  技术社区  ›  Jack Roscoe

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

  •  3
  • Jack Roscoe  · 技术社区  · 14 年前

    我在数据库中有一组时间记录,格式为“09:51:06”(小时、分钟、秒)。

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

    我怎样才能把剩下的线去掉,然后在一个小时的时间内把它排成一个数组呢?所以在上面的例子中,我只想保留'09'。

    我已经研究过爆炸和子串,但似乎还没搞清楚。

    谢谢。

    4 回复  |  直到 14 年前
        1
  •  9
  •   jwueller    14 年前

    爆炸字符串将如下所示(您可能需要添加 intval() 能够将其用作实数):

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

    但您可能正在寻找正确的查询,而不是在之后执行此操作。如果要处理时间类型,可以使用MySQL的 date and time functions ( HOUR() 在这种情况下):

    SELECT HOUR(`time_column`) AS `hour` FROM `your_table`
    
        2
  •  1
  •   Scoop    14 年前

    或者从数据库本身

    SELECT TIME_FORMAT(field_name, '%H') as return_hour from table_name
    
        3
  •  1
  •   Ben    14 年前
    $time_string='09:51:06';
    $your_array[$array_index]=substr($time_string, 0, 2);

    for more info on substr

        4
  •  0
  •   jon_darkstar    14 年前

    我想你可以通过字符串操作或者时间/日期来完成。任何有价值的日期方法都是在SQL方面,PHP有mktime和date函数,但是如果您无论如何都要构造一个日期,那么您就可以在过程中获得所需的时间

    字符串

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