2015-06-22 2 views
-1

Я работаю на несколько языках и имею формуляра решить проблему форматирования даты:Формата (с другим входом) PHP

В немецком языке Формат даты: ДД-ММ-ГГГГ Хотя в другой стране, например, Англия: формат даты: ГГГГ-ММ-ДД

Хотя эта проверка ввода обрабатывается правильно, мне нужно получить легкое решение для моего php-скрипта для обработки разных форматов дат. В моей базе данных MySQL поле создается как поле «дата».

Я уже думал о функции, как это:

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

Но не существует более простое решение, как проверка всех стран с различным форматом времени, чем Y-м-д? Может быть, библиотека или что-то еще? Я не нашел anyhting ..

С наилучшими пожеланиями DB-Dzine

+0

Как вы думаете, что l Библиотека будет делать? У него будет оператор switch или множество операторов if/else, как и вы. –

+0

Возможно, Carbon может вам помочь: https://github.com/briannesbitt/Carbon – Daan

+0

всегда есть 'strtotime ($ date)', что будет программным эквивалентом игры pin-the-tail-on-the-donkey. конечно, это крайне ненадежно, особенно на неоднозначных исходных данных. –

ответ

0

Я знаю, что Zend имеет некоторые из этой логики там zend_date (требуется Zend Framework ^^), но я бы просто использовать простое решение как это: (где вы получите формат от коммутатора заявления)

$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), я буду проверять правильные дата-входы на языке, а затем проверять их. –

Смежные вопросы