lungdesire
10.03.2016 - 09:47
Всем доброго времени суток.
Есть переменная $str со значением: 08.01.2016 8:03:50
Помогите подредактировать минуты и секунды, так что бы минуты были увеличины на 4, а секунды на 17. Как в итоге получить в $str = 08.01.2016 8:07:07
Дата и время конечно же может быть любым. Я уже и регулярки пробовал, но вот оптимального кода так и не подобрал) Благодарю за внимание =)
$str = '08.01.2016 8:03:50';
$time = strtotime("$str + 4 minute 17 seconds");
echo date('d.m.Y H:i:s', $time);
lungdesire
10.03.2016 - 10:43
Цитата (Kusss @ 10.03.2016 - 10:03) |
$str = '08.01.2016 8:03:50'; $time = strtotime("$str + 4 minute 17 seconds"); echo date('d.m.Y H:i:s', $time); |
Спасибо Бро =) Век тебе и твоим близким благополучия
lungdesire
10.03.2016 - 11:12
Цитата (Kusss @ 10.03.2016 - 10:03) |
$str = '08.01.2016 8:03:50'; $time = strtotime("$str + 4 minute 17 seconds"); echo date('d.m.Y H:i:s', $time); |
В тестовом скрипте твой пример работает на ура, а вот в теле php страницы дата выходит вот какая: 01.01.1970 03:00:00, хотя $str содержит "26.02.2016 17:07:17", где я мог накосячить? Переменная $time выходит пустой!
lungdesire
выводи данные на экран по строчно, а лучше выложи твой кусочек кода.
lungdesire
10.03.2016 - 11:47
Цитата (Kusss @ 10.03.2016 - 11:34) |
lungdesire выводи данные на экран по строчно, а лучше выложи твой кусочек кода. |
Для получения даты, я использую библиотеку phpQuery.
При выводе $str, светится нормальная дата со временем: 26.02.2016 17:07:17
$str = pq($tr)->find('td:eq(1)')->html();
$time = strtotime("$str + 4 minute 17 seconds");
$dt = date('d.m.Y H:i:s', $time );
В $str можно вместо html() указать text(), суть от этого не меняется, $time остаётся пустой. Проверил тип переменной $str - string.
Цитата (lungdesire @ 10.03.2016 - 07:47) |
светится нормальная дата со временем |
А как ты это проверяешь? Простым echo?Может там еще, например, \r\n. Попробуй
$str = trim(pq($tr)->find('td:eq(1)')->html());
lungdesire
10.03.2016 - 11:57
Цитата (kaww @ 10.03.2016 - 11:53) |
Цитата (lungdesire @ 10.03.2016 - 07:47) | светится нормальная дата со временем |
А как ты это проверяешь? Простым echo?Может там еще, например, \r\n. Попробуй $str = trim(pq($tr)->find('td:eq(1)')->html()); |
Без результата. $time всё-равно пустая. Я и text() уже выбирал и резал trim'мом) Мистика)
$str = pq($tr)->find('td:eq(1)')->html();
$str = htmlspecialchars($str);
die('str='.$str);
а так что будет ?
Цитата (Kusss @ 10.03.2016 - 08:02) |
а так что будет ? |
Можно сколько угодно вариантов перебирать (я вон тоже предложил один), причина очевидна - $str != '26.02.2016 17:07:17'.А что там лишнее (или недостающее), ТСу лучше знать.
lungdesire
10.03.2016 - 12:19
Цитата (Kusss @ 10.03.2016 - 12:02) |
$str = pq($tr)->find('td:eq(1)')->html(); $str = htmlspecialchars($str); die('str='.$str); а так что будет ? |
в html коде строка выглядит так: 26.02.2016 17:07:17
т.е. она в $str, и это при htmlspecialchars
Вероятно эти спец символы не так просто убрать)
lungdesire
10.03.2016 - 12:28
Вот собственно что на php странице и вылезает:
01.01.1970 03:04:17
$str=' 26.02.2016 17:07:17 ';
$str=strtotime("$str+ 4 minute 17 seconds");
echo $data= date('d.m.Y H:i:s',$str);
Ни у кого нет мыслей как этот кусок оживить?
$str = strip_tags( strtotime("$str+ 4 minute 17 seconds") );
$str='&_nbsp;26.02.2016 17:07:17&_nbsp;';
$str = str_replace('&_nbsp;', '', $str);
$str=strtotime("$str+ 4 minute 17 seconds");
echo $data= date('d.m.Y H:i:s',$str);
Это костыль правда
lungdesire
10.03.2016 - 12:57
Спасибо друзья

Разобрался)))
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.