Преобразование даты

Horus

Новичок
Преобразование даты

Есть строка "03.04.2006 12:50". Как её можно преобразовать в DATETIME для записи в таблицу MySQL?
 

Фанат

oncle terrible
Команда форума
разбить на части и собрать из них новую строку
 

zerkms

TDD infected
Команда форума
PHP:
echo preg_replace('/(\d{2})\.(\d{2})\.(\d{4}) (\d{2}):(\d{2})/', '\\3-\\2-\\1 \\4:\\5:00', '03.04.2006 12:50');
 

_aleks_

Новичок
$str = "03.04.2006 12:50";
$date = explode(" ",$str);
$tmp = explode(".",$date[0]);
$a = $tmp[2]."-".$tmp[1]."-".$tmp[0];
$b = $date[1].":00";
$date = $a." ".$b;
 

zerkms

TDD infected
Команда форума
_aleks_
для интереса померял разницу между моим и твоим кодом. результаты:

100000 итераций (AMD Duron 800MHz):
2.253270149231 (мой код)
3.3960011005402 (by _aleks_)

при том что мой код читабельнее.

мораль 1: регулярные выражения не всегда зло
мораль 2: поститься ради того чтобы лишь засветиться - глупо ;)
 

_aleks_

Новичок
zerkmszerkms
Я не претендую на объективно правильное решение и не преследовал цель "оститься ради того чтобы лишь засветиться"!
А за результаты спасибо, буду в следующий раз юзать регулярные выражения
 

zerkms

TDD infected
Команда форума
_aleks_
упс ;)
ты не совсем понял что я имею ввиду. я хотел просто развеять мнение - что регулярные выражения это плохо в любых ситуациях. я лишь показал - что иногда они бывают и удобнее и быстрее нежели строковые функции
буду в следующий раз юзать регулярные выражения
перед использованием очень тщательно взвешай оба варианта решения (или не оба - а 3, 4) ;)
 

zerkms

TDD infected
Команда форума
Lews
это очень распространённое мнение, полученное в результате общения с большим числом веб разработчиков различного уровня квалификации (в особенности - недостаточно опытных)
 
Сверху