我怎样才能显示小时和分钟?

时间:2011-12-20 09:29:41

标签: php mysql

我在php中使用mysql。

这是我的函数,它以json格式返回结果。

function getTiming($placeId) {

  $sql = "SELECT * from place_timing where placeId='$placeId'";

    $result = mysql_query($sql) or die ("Query error: " . mysql_error());

    $records = array();

    if (mysql_num_rows($result)==0)

     {

      echo '['.json_encode(array('placeId' => 0)).']';
      //this is for null result

     }

     else

     {

       while($row = mysql_fetch_assoc($result)) 

       {

         $records[] = $row;

       }


       echo json_encode($records); //this concerts in json

     }

}

此函数的输出如下: -

[{"placeId":"31","sun_open_time":"00:00:00","sun_close_time":"00:00:00","mon_open_time":"00:00:00","mon_close_time":"23:00:00","tue_open_time":"00:00:00","tue_close_time":"00:00:00"}]

但我想只显示小时:分钟。意味着我不想显示秒数。

请建议我如何更改上述功能,以便只显示小时:分钟。

提前谢谢。

3 个答案:

答案 0 :(得分:3)

有很多方法可以做到,“最干净”的方法是指定SELECT子句中的列,并使用DATE_FORMAT()传递日期,如下所示:DATE_FORMAT(sun_open_time, '%H:%i')

答案 1 :(得分:1)

调整查询以选择实际字段,而不是*,然后在时间字段上使用TIME_FORMAT(),例如:

SELECT TIME_FORMAT(`sun_open_time`, '%H %i') AS `opentime`;

这将直接从查询返回所需的值,而不会有任何PHP黑客攻击。

答案 2 :(得分:0)

看来你的table_timing(sun_open_time,sun_close_time等等)的字段只有hh:mm:ss格式化时间。所以你必须使用MySql的SUBSTRING()函数。

所以你的查询可以如下。

  

$ sql =“SELECT SUBSTRING(sun_open_time,1,5),   SUBSTRING(sun_close_time,1,5),SUBSTRING(mon_open_time,1,5),   SUBSTRING(mon_close_time,1,5),   SUBSTRING(tue_open_time,1,5),SUBSTRING(tue_close_time,1,5)来自   place_timing其中placeId ='$ placeId'“;