strtotime() не работает, не могу выяснить причину

#php

#php

Вопрос:

Хорошо, у меня возникли некоторые проблемы с strtotime(), используя этот класс php, я получу ответ типа:

03 апреля 2019, 22:32:12 CEST Умер на уровне 988 от guzzlemaw.

Затем я использую implode(), чтобы получить только 03 апреля 2019, 22:32:12 CEST , однако при попытке strtotime($output_str) он возвращает nil .

Почему?

 include_once "TibiaWebAPI.class.php";

$player = new TibiaPlayer("Punbelz");

if($player->getDeaths()) {
    $lastdeath = $player->getDeaths()[0];
    $output_str = implode(" ", array_splice(explode(" ",$lastdeath),0,1));
    echo strtotime($output_str);
}
 

Для справки, это TibiaWebAPI.class

Редактировать:

Даже при использовании preg_match() это не работает.

 include_once "TibiaWebAPI.class.php";

$player = new TibiaPlayer("Punbelz");

if($player->getDeaths()) {
    $lastdeath = $player->getDeaths()[0];
    $pattern = "/(.*?)[0-9] [:][0-9] [:][0-9] /";

    if (preg_match($pattern, $lastdeath, $matches)) {
        $myDate = $matches[0];

        echo strtotime($myDate);
    }
}
 

Комментарии:

1. Вы должны получить уведомление: только переменные должны передаваться по ссылке

2. Да, но я даже пытался использовать preg_replace или preg_match, в обоих случаях я не смог использовать strtotime() .

Ответ №1:

Сначала вы хотите array_slice , или вы получаете уведомление: только переменные должны передаваться по ссылке. Во-вторых, вам нужно получить 5 элементов:

 $output_str = implode(" ", array_slice(explode(" ", $lastdeath), 0, 5));
echo strtotime($output_str);
 

ДЕМОНСТРАЦИЯ

Если Died всегда будет разделять два, то просто взорвется на этом:

 $output_str = explode(" Died ", $lastdeath);
echo strtotime($output_str[0]);
 

ДЕМОНСТРАЦИЯ

Комментарии:

1. Если я использую этот implode(), я получу: 03 апреля 2019, 22:32:12 CEST Умер на уровне 988, а не date(), во всяком случае, с preg_match() или preg_replace(), это тоже не работает, это что-то с strtotime()

2. Действительно странно, это правда, использование некоторых онлайн-IDE также будет работать, однако при получении ответа класса это не работает, это массив print_r() ([0] => 03 апреля 2019, 22:32:12 CEST Умер на уровне 988 от guzzlemaw. )

3. Тогда ваш текст не такой, как вы думаете, сделайте var_dump() это и просмотрите источник страницы.