Изменение формата даты в PHP <5.3.0 - PullRequest
0 голосов
/ 31 октября 2011

Учитывая строку даты в формате mdY (например, «12-09-2011»), как я могу отобразить ее в формате «m / d / Y» БЕЗ , используя регулярные выражения.

На всякий случай, если вы его пропустили: без использования регулярных выражений.

Я бы предпочел использовать DateTime::createFromFormat() для этой проблемы, но на сервере, который я сейчас использую, нет 5.3.0.

Я бы также предпочел использовать date('m/d/Y', strtotime("12-09-2011")), но strtotime() не распознает этот формат должным образом. Это путает день и месяц.

Ответы [ 3 ]

3 голосов
/ 31 октября 2011

Нет необходимости в тяжелой артиллерии. Поскольку вы не переставляете компоненты даты, простой поиск строки / замена сделает:

$string = '12-09-2011';
$fixed = str_replace('-', '/', $string);

Если вы БЫЛИ перестроить вещи, например, переводя твой м-д-й в д / м / год, тебе понадобится что-то более тяжелое:

$string = '12-09-2011';
$parts = explode('-', $string); // array(0 => '12', 1 => '09', 2 => '2011');
$fixed = $parts[1] . '/' . $parts[0] . '/' . $parts[2]; // 09/12/2011
1 голос
/ 31 октября 2011
sscanf("12-09-2011", "%d-%d-%d", $month, $day, $year);
echo "$month/$day/$year";
1 голос
/ 31 октября 2011

А как насчет взрыва? т.е.

$date = explode('-',  "12-09-2011");
echo $date[1] . '/' . $date[0] . '/' . $date[2];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...