2010-10-06 8 views
2


У меня есть окно ввода для получения значения в формате mm-dd-yyyy. Так что, когда я получаю дату, я пытаюсь скрыть ее в формате ГГГГ-ММ-ДД. Но это не работает.
Пример:
<? $birthdate="08-13-2000"; $date=date('Y-m-d',strtotime($birthdate)); echo $date; ?>. Выход 1970-01-01.
Но если я дал 13-08-2000, то получил 2000-08-13. I dont want to split. Потому что в моем приложении я использовал во многих местах, таких как this.But я думаю, что strtotime конвертировать его в формат timestamp unix, даже независимо от значения. Вот почему я стараюсь делать. Как это неправильно я понимаю или делаю?
Заранее спасибо.Как преобразовать дату в формат paticular с помощью PHP?

+1

Преобразование «независимо от стоимости» невозможно - если у вас 11-08-2000, то что 08 ноября или 11 августа? Взгляните на http://php.net/manual/en/function.strptime.php – Amadan

ответ

4

strtotime() анализирует даты, разделенные тире, как dd-mm-yyyy. Вам нужно будет ввести дату рождения «08/13/2000». str_replace должен выполнить эту работу, если вы не можете изменить ожидаемый разделитель для ввода.

кредита для сепараторов различий Сэма в frontiermedia точка чистой точки а.е. от php.net

Edit: Есть некоторые примеры кода для если вам нужно сделать замену:

$birthdate = '08-13-2000'; 
$birthdate = str_replace('-','/',$birthdate); 
$date  = date('Y-m-d',strtotime($birthdate)); 

echo $date; 

В противном случае это» d just be

$birthdate = '08/13/2000'; 
... snip ... 
4

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

$date = explode("-", "08-13-2000"); // input MM-DD-YYYY 
$time = mktime(0, 0, 0, $date[0], $date[1], $date[2]); // to time 
$date = date('Y-m-d', $time); // transform to Y-m-d 
echo $date; // output YYYY-MM-DD 
  • $ дате [0] является месяц
  • $ дата [1] является день
  • $ Дата [2] является годом

И если вы используете его во многих местах, выполните функцию():

function transformDate($input) 
{ 
    $date = explode("-", $input); 
    $time = mktime(0, 0, 0, $date[0], $date[1], $date[2]); 
    $date = date('Y-m-d', $time); 

    return $date; 
} 

echo transformDate("08-13-2000"); 
+0

Я думаю, что взорваться («-», «08-13-2000») будет работать намного лучше. – lonesomeday

+0

Не хотите ли вы взорваться ('-', '08-13-2000'); ? – ASpencer

+0

Правда, моя вина, редактирование! :) – ipalaus

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