2017-10-19 63 views
0

我有一個字符串,它得到的日期時間從數據庫中一組,所以我得到這樣的事情僅獲得一次

2017-10-20 05:00:00,2017-10-20 09:00:00,2017-10-20 07:00:00,2017-10-20 13:30:00,2017-10-20 16:00:00,2017-10-20 13:00:00,2017-10-20 06:00:00,2017-10-20 09:30:00,2017-10-20 10:30:00,2017-10-20 15:30:00,2017-10-20 17:00:00 

注意,所有的日期都是相同,即2017-10-20。因爲我不需要擔心不同的日期。所有我想要的是簡單地從這個字符串中提取的時間,並很好地打印它像這樣

05:00, 09:00, 07:00, 13:30, 16:00 //and so on 

我不想秒,這是不必要的。

我嘗試使用PHP的strtotime()函數,但它失敗並給予00:00:00代替。

任何想法?我使用Laravel作爲模板引擎。

+0

你得到這些結果從字面上看,作爲一個單一的字符串,或者是你表示數組元素與逗號? – George

+1

我可能只是做'str_replace('2017-10-20','',[YOURSTRING]);' – kerbholz

+0

@kerbholz日期不會被硬編碼,我會得到不同的日期作爲數據庫結果。 – zuif

回答

6

在您的SQL語句中執行此操作。

SELECT TIME_FORMAT(`dateColumn`, '%H:%i') FROM ... 
0
<?php 
$tGroup = "2017-10-20 05:00:00,2017-10-20 09:00:00,2017-10-20 07:00:00,2017-10-20 13:30:00,2017-10-20 16:00:00,2017-10-20 13:00:00,2017-10-20 06:00:00,2017-10-20 09:30:00,2017-10-20 10:30:00,2017-10-20 15:30:00,2017-10-20 17:00:00"; 

$retVal = ""; 
$dates = explode(",", $tGroup); 
foreach ($dates as $date) { 
    $time = date('H:i', strtotime($date)); 

    // use this if you want to print AM/PM format 
    //$time = date('h:i A', strtotime($date)); 

    $retVal .= $time . ", "; 
} 
echo trim($retVal," ,"); 
1

循序漸進:

$dateTimes = '2017-10-20 05:00:00,2017-10-20 09:00:00,2017-10-20 07:00:00,2017-10-20 13:30:00,2017-10-20 16:00:00,2017-10-20 13:00:00,2017-10-20 06:00:00,2017-10-20 09:30:00,2017-10-20 10:30:00,2017-10-20 15:30:00,2017-10-20 17:00:00'; 
$dateTimesArray = explode(',', $dateTimes); 
$timesArray = []; 
foreach($dateTimesArray as $dateTime) { 
    $timesArray[] = date('H:i', strtotime($dateTime)); 
} 
$times = join(',', $timesArray);