2015-01-29 5 views
1

Нам нужно из формы html отправить дату в формате «хорватский» 29. 01. 2015 (обратите внимание на пространство после точки), но прежде чем мы сэкономьте дате в базе данных необходимо преобразовать строку в формат даты mysql 2015-01-29.CakePHP/PHP, хорватский date convert to mysql date

Мы используем фреймворк CakePHP 2.6, поэтому вы можете комбинировать CakeTime и простой PHP.

В настоящее время мы используем эту функцию:

// $pickerDate = '29. 01. 2015'; 
public function pickerDateToMysql($pickerDate){ 
    $datetime = explode(' ', str_replace('.','',$pickerDate)); 
    $date = implode('-',array_reverse($datetime)); 
    debug($date); 
    return $date; // 2015-01-29 
} 

есть более элегантное решение?

ответ

1

Вы можете использовать DateTime::createFromFormat() метод, чтобы изменить формат отображения даты

public function pickerDateToMysql($pickerDate){ 
    $date = DateTime::createFromFormat('d. m. Y', $pickerDate); 
    return $date->format('Y-m-d'); 
} 
$CroatianDate = '29. 01. 2015'; 
pickerDateToMysql($CroatianDate); 
+0

Только небольшая коррекция ** м **. вместо ** M. ** $ date = DateTime :: createFromFormat ('d. m. Y', $ pickerDate); – Salines

+1

был тип выпуск .. thx – Girish