PHP портит мои даты - PullRequest
       12

PHP портит мои даты

2 голосов
/ 29 октября 2008
$doba = explode("/", $dob);

$date = date("Y-m-d", mktime(0,0,0, $doba[0], $doba[1], $doba[2]));

Приведенный выше код превращает любую дату, которую я передаю, в 1999-11-30, и я знаю, что она работала вчера. Дата верна, когда я повторяю $ doba. У кого-нибудь есть идеи?

Приветствия

Ответы [ 4 ]

3 голосов
/ 29 октября 2008

или даже проще: $date = date('Y-m-d', strtotime($dob))

3 голосов
/ 29 октября 2008

Какой формат $doba? Помните, что синтаксис mktime использует часы, минуты, секунды, месяц, день года , что может сбивать с толку.

Вот несколько примеров:

$doba = explode('/', '1991/08/03');
echo(date('Y-m-d', mktime(0,0,0, $doba[1], $doba[2], $doba[0]);

$doba = explode('/', '03/08/1991');
echo(date('Y-m-d', mktime(0,0,0, $doba[1], $doba[0], $doba[2]);
2 голосов
/ 29 октября 2008

В этом случае использовать mktime немного излишне. Предполагая, что $dob имеет следующий формат:

MM/DD/YYYY

Вы можете просто получить следующее, чтобы получить тот же результат (при условии, что $dob всегда действителен):

$doba = explode("/", $dob);
$date = vsprintf('%3$04d-%1$02d-%2$02d', $doba);
0 голосов
/ 29 октября 2008

Если у вас есть проблемы с тем, что сказал jcoby выше, команда strptime () дает вам больше контроля, позволяя вам также указать формат.

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