php делает дату в формате мм-дд-гггг - PullRequest
1 голос
/ 21 августа 2009

У меня есть дата в следующем формате

MM-DD-YYYY

Как я могу преобразовать это время в UNIX в PHP

Спасибо

возникла небольшая проблема

$date = strtotime($_POST['retDate']);
print $date; //Prints nothing
print $_POST['retDate']; //Prints 08-18-2009

Ответы [ 4 ]

3 голосов
/ 21 августа 2009

Если формат всегда такой, я бы попробовал что-то вроде:

list($m,$d,$y) = explode('-', '08-18-2009');
$time = mktime(0, 0, 0, $m, $d, $y);
print date('m-d-Y', $time);

Что касается вашего примера, проблема в том, что функция не работает. Вы должны проверить это так:

if(($time=strtotime('08-18-2009'))!==false)
{
 // valid time format
}
else
 echo 'You entered an invalid time format';
2 голосов
/ 05 февраля 2013

или вы можете использовать php date obyek, чтобы сделать это, как это

$tgl = "30-12-2013";
$tgl2 = DateTime::createFromFormat('d-m-Y', $tgl);
print_r($tgl2);
echo($tgl2->format('Y-m-d'));

Надеюсь, это поможет ...

1 голос
/ 21 августа 2009

Использование strtotime :

$str = "03-31-2009";
$unixtime = strtotime($str);
0 голосов
/ 02 июля 2013

С тех пор как были предоставлены эти ответы и комментарии, PHP обновлен и теперь включает встроенную функцию, которая идеально подходит для этой ситуации. Проверьте объект DateTime PHP здесь . Это включает в себя createFromFormat метод, который будет делать в соответствии с запросом. В этом конкретном примере:

$date = DateTime::createFromFormat('j-M-Y', $_POST['retDate']);

Оттуда вы можете отформатировать его по желанию или выполнить любые другие операции с датами:

echo $date->format('Y-m-d');

И это все! Имейте в виду, что это предусмотрено только в PHP 5.3.0 или выше!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...