[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите подредактировать дату
lungdesire
Всем доброго времени суток.
Есть переменная $str со значением: 08.01.2016 8:03:50
Помогите подредактировать минуты и секунды, так что бы минуты были увеличины на 4, а секунды на 17. Как в итоге получить в $str = 08.01.2016 8:07:07
Дата и время конечно же может быть любым. Я уже и регулярки пробовал, но вот оптимального кода так и не подобрал) Благодарю за внимание =)
Kusss
$str = '08.01.2016 8:03:50';
$time = strtotime("$str + 4 minute 17 seconds");
echo date('d.m.Y H:i:s', $time);
lungdesire
Цитата (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);

Спасибо Бро =) Век тебе и твоим близким благополучия wink.gif
lungdesire
Цитата (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 выходит пустой!
Kusss
lungdesire
выводи данные на экран по строчно, а лучше выложи твой кусочек кода.
lungdesire
Цитата (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.
kaww
Цитата (lungdesire @ 10.03.2016 - 07:47)
светится нормальная дата со временем

А как ты это проверяешь? Простым echo?Может там еще, например, \r\n. Попробуй
$str = trim(pq($tr)->find('td:eq(1)')->html()); 
lungdesire
Цитата (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'мом) Мистика)
Kusss
$str = pq($tr)->find('td:eq(1)')->html(); 
$str = htmlspecialchars($str);
die('str='.$str);

а так что будет ?
kaww
Цитата (Kusss @ 10.03.2016 - 08:02)
а так что будет ?

Можно сколько угодно вариантов перебирать (я вон тоже предложил один), причина очевидна - $str != '26.02.2016 17:07:17'.А что там лишнее (или недостающее), ТСу лучше знать.
lungdesire
Цитата (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
Вот собственно что на 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);


Ни у кого нет мыслей как этот кусок оживить?
Kusss
$str = strip_tags( strtotime("$str+ 4 minute 17 seconds") );
Kusss
// убрать подчеркивание, форум преобразовывает в пробел
$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
Спасибо друзья biggrin.gif Разобрался)))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.