2017-10-05 177 views
0

我的一些數據遷移過程中的工作,與包括負載的CSV的碳 - 規範日期時間

我現在面臨的問題是,我處理的數據文件有2列,即「日」和「時間」。現在,日期本身沒有問題。我的「時間」列可以採用任何格式,即H:iH:i:s。無論格式如何,我希望我的輸出爲d/m/Y H:i:s,如果沒有給出秒數,只需追加00。

碳的createFromFormat需要我指定我的輸入格式是什麼,我不能。目前我所做的是使用Excel根據時間格式將我的CSV文件分割成不同的文件,然後分別導入它們,但這需要花費太多時間。

我似乎無法找到一個可以讓我做這件事之一:

if(getSecondsFromTime){ 
    Carbon::createFromFormat($string, 'd/m/Y H:i:s'); 
}else{ 
    Carbon::createFromFormat($string, 'd/m/Y H:i'); 
} 

確實碳/ PHP日期時間有我不知道的,可以做這樣的功能?還是我必須解決正則表達式來做我需要的?

回答

0

當您在Excel中處理每一行時,獲取您的日期和時間值。然後使用正則表達式來檢查時間格式。使用它來指定創建Carbon實例時要使用的格式。

$date = '05/10/2017'; 
$time = '13:31:00'; // or '13:31' 

$format = preg_match('/^\d{2}:\d{2}$/', $time) ? 'd/m/Y H:i' : 'd/m/Y H:i:s'); 
$datetime = Carbon::createFromFormat("{$date} {$time}", $format); 
1

如果更換/-然後Carbon::parse將工作:

$t = '05/10/2017 18:00'; 
$c = Carbon::parse(str_replace('/', '-', $t)); 
+0

我希望碳的功能,而不是訴諸於正則表達式 –