我在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"}]
但我想只显示小时:分钟。意味着我不想显示秒数。
请建议我如何更改上述功能,以便只显示小时:分钟。
提前谢谢。
答案 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'“;