Всем привет. Крч хотел сделать бб код таймер
timer{11.05.2017}
Достаю дату и пытаюсь ее обработать так
$text='Осталось: timer{11.05.2017}';
$text = preg_replace ('/timer\{(.*?)\}/is', timer('$1', 0), $text);
function timer($date, $times=0){
$date=explode('.', $date);
$time=mktime(0, 0, 0, $date[1], $date[0], $date[2])+$times*60*60;
$time=abs(time()-$time);
$time=floor($time/(60*60*24));
return plural_form($time, array('день','дня','дней'));
}
Ну и суть в том, что дата (11.05.2017) не разбивается в массив.
То есть $date[0]='11.05.2017';
А вот если просто воткнуть в функцию дату
echo timer('11.05.2017');
все сработает как надо. В чем трабла и как можно исправить?
функция explode разбивает строку на массив по разделителю. В твоем случае это точка..
redbull, ну это и так понятно, что точка. Почему не разбивает то не понятно
Sakamsky, странно все должно работать.сейчас у себя проверю
мб {} не ест потому что? побробуй их в регулярке заэкранировать.
Добавлено 18.04.17 в 16:27:54:
такто неэкранированные фигурные скобки исполняют другой функционал...
Sakamsky, все прекрасно разбивается :/
$time = '11.05.2017';
$test = explode('.',$time);
var_dump($test);
Добавлено 18.04.17 в 16:32:17:
Скорее всего Ren прав.
Да пля, профик слэши схавал. Редбул понял не так. Я говорю что если напрямую воткнуть дату в функцию сработает. Если взять из строки, то нет. Крч лан, уже все равно не нужно