php
  • mysql
  • 2011-12-20 2 views 1 likes 
    1

    Я работаю в 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"}] 
    

    Но я хочу показать только час: мин. означает, что я не хочу показывать секунды.

    , пожалуйста, предложите мне, как я могу изменить свою функцию выше, чтобы я мог показывать только час: минуты.

    Заранее спасибо.

    +2

    Это относится к стандартной категории ["как мне отформатировать MySQL datetimes"] (http://stackoverflow.com/search?q=%5Bmysql%5D+%5Bphp%5D+change+time+format) , например [Изменить формат отображения даты и времени в MySQL PHP] (http://stackoverflow.com/questions/2411970/change-display-format-of-date-and-time-field-in-mysql-php) – deceze

    ответ

    3

    Существует много способов сделать это, «самый чистый» будет указывать столбцы в предложении SELECT и передавать даты с DATE_FORMAT() следующим образом: DATE_FORMAT(sun_open_time, '%H:%i').

    +0

    это не будет работать, если sun_open_time имеет данные, такие как только формат времени, например hh: mm: ss. – Kammy

    +0

    Он будет работать как для TIMESTAMP (который является наиболее часто используемым типом), так и для DATE_TIME; Я не уверен, что это не сработает для TIME, но даже тогда вы можете просто переключиться на TIME_FORMAT(). – Viruzzo

    1

    Настройте ваш запрос, чтобы выбрать фактические поля, а потом *, а затем использовать TIME_FORMAT() на полях времени, как:

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

    Это будет возвращать нужные значения непосредственно из запроса без каких-либо PHP писак.

    0

    Кажется, что ваши поля таблицы place_timing (sun_open_time, sun_close_time и т. Д.) Имеют только hh: mm: ss formated time. поэтому вы должны использовать функцию SUBSTRING() MySql.

    Таким образом, запрос может быть следующим.

    $ 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), СУБСТРИРОВАНИЕ (tue_open_time, 1,5), ПОДРАЗДЕЛЕНИЕ (tue_close_time, 1,5) от place_timing где placeId = '$ placeId' ";

    Смежные вопросы