2016-11-26 66 views
-1

糟糕,我有這樣的代碼:日期在PHP

$evt_start_date = date("m/d/Y", strtotime($event_date_from)); 

其中: $ event_date_from = enero 15,2017年 這種格式的日期是在西班牙。

函數strtotime不起作用,因爲$ event_date_from格式不正確。

正如你可以在傳遞給函數strtotime之前正確地格式化這個變量$ event_Date_from。

如何將日期「ENERO 15,2017」轉換爲正確的格式,以便「srttotime」函數不返回錯誤。

+1

你的問題是什麼? – Carcigenicate

+0

嗨@Carcigenicate如何將日期「2017年1月15日」轉換爲正確的格式,以便「srttotime」函數不返回錯誤。 –

+1

請通過編輯將其添加到您的原始問題。 – Carcigenicate

回答

1

可以使用PHP DateTime對象 - http://php.net/manual/en/datetime.createfromformat.php

您需要先用一個英文名稱,以取代月份名稱,例如,

$search = [ 
    'spanishJanuary', 
    'spanishFebruary', 
    'spanishMarch', 
    // etc... 
]; 

$replace = [ 
    'January', 
    'February', 
    'March', 
    // etc... 
]; 

$spanish_date_string = 'spanishMarch 15, 2017'; 

$date_string = str_replace($search, $replace, $spanish_date_string); 

一旦這樣做,你可以使用DateTime對象這樣,

// $date_string now changed to "March 15, 2017" 
$date = DateTime::createFromFormat('F j, Y', $date_string); 
echo $date->format('m/d/Y'); 

這將導致在

03/15/2017 
+0

在我的情況下沒有工作,因爲日期是西班牙文。例如:Enero 10,2016 –

+0

已經翻譯過 – Steve