Преобразование формата времени php - PullRequest
0 голосов
/ 10 августа 2011

У меня есть следующий формат времени: 15/08/2011 12:32:23 день / месяц / год час: минута: секунда, и я хочу преобразовать в следующий формат: Y-m-d H: i: s

Я пытался с date('Y-m-d H:i:s', strtotime($time)), но это не работает. Меняет местами месяц и день преобразования строки в дату.

Ответы [ 3 ]

2 голосов
/ 10 августа 2011

strtotime понимает как американский (mm/dd/YYYY), так и европейский (dd-mm-YYYY or dd.mm.YYYY) форматы. Вы используете косую черту для разделения дня, месяца и года, и поэтому ваша дата интерпретируется как американская. Чтобы решить эту проблему, замените косую черту тире.

0 голосов
/ 10 августа 2011

Тебе придётся перепроверить время.strtotime думает, что вы пытаетесь ввести строку в формате 'm/d/Y H:i:s', но вы предоставляете 'd/m/Y H:i:s'.

list($date, $times) = explode(' ', $time);
list($day, $month, $year) = explode('/', $date);
$newTime = date('Y-m-d H:i:s', strtotime("$month/$day/$year $times");
0 голосов
/ 10 августа 2011

В этом случае вы можете очень просто поменять месяц и дату в вашей строке:

$time_string = "15/08/2011 12:32:23";
$strtotime = explode("/",$time_string);
$strtotime = implode("/",array($strtotime[1], $strtotime[0], $strtotime[2]));
echo date('Y-m-d H:i:s', strtotime($strtotime));

Рабочий пример: http://codepad.viper -7.com / 234toO

...