2015-06-22 35 views
-1

我工作的一個多語種的表現公式,並有解決日期格式問題:雖然在其他國家DD-MM-YYYY 例如:格式日期(用不同的輸入)PHP

在德國的日期格式英格蘭的日期格式是:YYYY-MM-DD

雖然此輸入驗證處理正確,但我需要爲我的php腳本處理不同日期格式的簡單解決方案。在我的MySQL數據庫中,該字段被創建爲「日期」字段。

我已經想到了這樣的功能:

<? 
if($lang == "de") { 
    $date = $_POST['date']; 
    $toConvert = DateTime::createFromFormat('d-m-Y', $date); 
    $convertedDate = $toConvert->format('Y-m-d'); 
} 

但是是不是有一個簡單的解決方案,檢查所有的國家比Y-M-d不同的時間格式?也許是一個圖書館或什麼?我還沒有發現anyhting ..

最好的問候 DB-Dzine

+0

您認爲l圖書館會去做什麼?它會像你一樣有一個switch語句或一堆if/else語句。 –

+0

也許碳可以幫助你:https://github.com/briannesbitt/Carbon – Daan

+0

總是隻有'strtotime($ date)',這將是等同於玩驢子尾巴的軟件。當然,這是非常不可靠的,特別是在模棱兩可的投入上。 –

回答

0

我知道,Zend公司有一些這樣的邏輯在裏面Zend_Date的運算(需要Zend框架^^),但我只想用一個簡單的解決方案是這樣的:(你來自哪裏,switch語句獲取格式)

$date = $_POST['date']; 
$toConvert = DateTime::createFromFormat('d-m-Y', $date); 

switch($lang){ 
    case 'de': 
     $format = 'Y-m-d'; 
     break; 
    default: 
     $format = 'd-m-Y'; 
     break 
} 

$convertedDate = $toConvert->format($format); 

通過自己做,你知道你得到的格式是正確的(由你的標準,那就是不破壞的東西在您的應用程序中)

+0

感謝您的評論。當我使用jquery的驗證引擎(https://github.com/posabsolute/jQuery-Validation-Engine)時,我將檢查語言特定的正確日期輸入,然後驗證它們。 –