2012-05-21 2 views
-2

Можно создать дубликат:
how to convert php date formats to GMT and vice versa?PHP, конвертировать множество различных форматов даты в день-месяц-год

В PHP У меня есть строка даты, как это:

May 21, 2012 07:23:15 GMT 

или настоящего

21 May 2012 07:23:15 GMT 

Мне нужно преобразовать обе строки в нечто вроде этого: 21-05-2012. (день-месяц-год)

Может ли PHP правильно разобрать обе эти строки в формате «день-месяц-год»?

+0

А как именно, вы получите строку в первую очередь? –

+0

разве это не очевидный вопрос ... прочитайте первую строку моего вопроса –

+0

Нет, вы просто заявляете, что у вас есть такая строка. Откуда вы его создаете? Что вы используете? Можете ли вы отформатировать его в момент создания, а не убирать его потом? –

ответ

3

Попробуйте это -

$your_string = "21 May 2012 07:23:15 GMT"; 
$dd = date("d-m-Y", strtotime($your_string)); 
echo $dd; 
+0

Прохладный :) надеюсь, что это будет ожидаемый ответ сейчас;) – swapnesh

1

Для этого вы можете использовать strtotime(). В качестве альтернативы, если вы знаете, какой формат ожидать, вы можете использовать strptime() для его анализа, что было бы предпочтительнее.

2

Вы пробовали класс DateTime?

date_default_timezone_set('Europe/Stockholm'); 
$date = new DateTime("May 21, 2012 07:23:15 GMT"); 
print $date->format('Y-m-d'); 
+0

no..интересное решение..Я попробую его –

+0

Добавил date_default_timezone_set(), вам это может понадобиться. – h00ligan

+0

Это работает так же, как 'strtotime()' (подробности см. На странице руководства для ["Compound Formats"] (http://pt2.php.net/manual/en/datetime.formats.compound.php).) , – rid

0

Попробуйте

$str_date = "May 21, 2012 07:23:15 GMT"; 
$date = DateTime::createFromFormat('M d, Y H:i:s O', $str_date); 
echo $date->format('d-m-Y'); 

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

  • Нет связанных вопросов^_^