2014-11-02 126 views
0

我使用PHP和MySQL。如何將格式HH:MM AM/PM轉換爲HH:MM:SS以節省MySQL時間?轉換格式爲HH:MM AM/PM至HH:MM:SS

+0

原始時間變量的類型是什麼? – 2014-11-02 16:01:10

+0

你的例子:'$ time = '10:12 AM'; echo $ time; echo date('H:i:s',strtotime($ time));' – MH2K9 2014-11-02 16:01:52

+0

我的輸入是文本,但格式爲HH:MM AM/PM – 2014-11-02 16:03:26

回答

2

使用strtotime將其轉換爲時間戳,然後使用date函數對其進行格式化。

以下示例假定$time已設置爲需要格式化的時間。

$time = date("H:i:s", strtotime($time)); 
1

我會做的方式是:

<?php 
    $date = "6:23 AM"; 
    $timeType = explode(" ", $date); 
    $timeItems = explode(":", $timeType[0]); 
    if($timeType[1] == "PM"){ 
     $timeItems[0] += 12; 
    } 
    $time = implode(":", $timeItems); 
    $time .= ":00"; 
    var_dump($time); 
?> 
+0

這會工作,但你正在重新發明輪子。 PHP中已經有了處理日期的函數。 – 2014-11-02 16:12:35

+0

是的,這是我的壞,我沒有意識到,你可以只使用日期函數來抓住時間。從回答中學習 – JammyDodger231 2014-11-02 16:18:26

0

使用date_format()解決您的問題:

DATE_FORMAT(date,'%H:%i:%s') 
+0

MySQL date_format和time_format不識別am/pm字符串。 – 2017-12-14 23:25:19

0

容易。在MySQL中使用DATE_FORMAT這樣的:

SELECT DATE_FORMAT(NOW(), '%H:%i:%s'); 

和使用例如,你可以對夫婦這與STR_TO_DATE這樣的:

SELECT DATE_FORMAT(STR_TO_DATE('09:41 AM', '%h:%i %p'), '%H:%i:%s'); 

然後在你的MySQL查詢,你可以根據與變量取代09:41 AM您MySQL表。

相關問題