strtotime в PHP для дд ММ гггг - PullRequest
0 голосов
/ 08 мая 2019

При попытке:

echo "<br />".$opening_time = "02 May 2019 - 03:10";
echo "<br />".$closing_time = "12 May 2019 - 13:40";
echo "<br />".$string_opening_time = strtotime($opening_time);
echo "<br />".$string_closing_time = strtotime($closing_time);
echo "<br />".$diffrence_time = $string_closing_time - $string_opening_time;

Результаты:

02 мая 2019 года - 03:10 12

мая 2019 года - 13: 40

// 2 пустых строки

0

Почему при преобразовании в strtotime оно пустое?

1 Ответ

3 голосов
/ 08 мая 2019

Формат d M Y - H:i не распознан, но вы можете воссоздать его как объект DateTime, если знаете, в каком формате он будет использоваться DateTime::createFromFormat().

Создайте два объекта DateTime и используйте для них метод diff(), который даст вам разницу.

$opening_time = "02 May 2019 - 03:10";
$closing_time = "12 May 2019 - 13:40";

$open = DateTime::createFromFormat("d M Y - H:i", $opening_time);
$close = DateTime::createFromFormat("d M Y - H:i", $closing_time );
$diff = $open->diff($close);

echo $opening_time."<br />\n";
echo $closing_time."<br />\n";
echo $diff->d." days ".$diff->h." hours ".$diff->m." minutes ";

Если вам нужна разница в секундах, используйте методы getTimestamp().

$open = DateTime::createFromFormat("d M Y - H:i", $opening_time);
$close = DateTime::createFromFormat("d M Y - H:i", $closing_time );
$diff = $close->getTimestamp() - $open->getTimestamp();

echo $opening_time."<br />\n";
echo $closing_time."<br />\n";
echo $diff;
...