[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как поменять все вхождения времени в переменной
lungdesire
Друзья, всех приветствую! Недавно обсуждал с Вами вопрос как поменять время в переменной. В итоге сошлись на:

$time[0] = "26.02.2016 17:07:17";
$time = strtotime("$time[0] + 2 minute 17 seconds");
$data_time = date('d.m.Y H:i:s',$time);
echo $data_time;

Вопрос следующий: В переменной $inf содержится ответ от web страницы. В этом ответе может быть любое количество вхождений с разной датой и временем в формате: 26.02.2016 17:07:17

1) Как мне увеличить время каждого подобного вхождения на те же 2 минуты 17 секунд?
2) Обязательно ли в таком случае использовать для выборки регулярные выражения?

Благодарю Всех за внимание =)
drouZ
вылавливать и менять. регулярки, прегмачи и вперед.
единственное, смотря в каком порядке у тебя они встречаются. если там только список времени через табуляцию прописан, то можно и без регулярок в принципе.
Kusss
Если я правильно понял вопрос
$time = array(
"26.02.2016 17:07:17",
"26.02.2016 17:10:17",
"26.02.2016 17:13:17",
);

if (is_array($time)) {
foreach ($time AS &$value) {
$value = date('d.m.Y H:i:s', strtotime("$value + 2 minute 17 seconds") );
}
print_r($time);
}
ответ
Array
(
[0] => 26.02.2016 17:09:34
[1] => 26.02.2016 17:12:34
[2] => 26.02.2016 17:15:34
)

Или у тебя текст в которой встречается дата ?
kaww
lungdesire, Если коротко, то preg_match + str_replace. Т.е. сначала регуляркой вылавливаешь все даты, получаешь массив (array1), во второй массив заносишь значения из первого + 2 minute 17 seconds (array2), затем str_replace(array1, array2, string);
lungdesire
Между датой текст. Так что видимо придётся использовать preg'и)
Правда я пока слабо представляю как через реги в тексте находить время и уже менять)
depp
пример текста скинь
Kusss
$text = 'sdfsdfsdfsd 26.02.2016 17:07:17rererer 26.02.2016 17:10:17 frerfe';
preg_match_all('/(0[1-9]|[12][0-9]|3[01])[- \.](0[1-9]|1[012])[- \.](19|20)\d\d ([0-1]\d|2[0-3])(:[0-5]\d){2}/',$text, $matches);
if (count($matches[0]) > 0) {
print_r($matches[0]);
$replace = array();
foreach ($matches[0] AS $key=>$value) {
$replace[$key] = date('d.m.Y H:i:s', strtotime("$value + 2 minute 17 seconds") );
}
$text = str_replace($matches[0], $replace, $text);
echo $text;
}
Array
(
[0] => 26.02.2016 17:07:17
[1] => 26.02.2016 17:10:17
)
sdfsdfsdfsd 26.02.2016 17:09:34rererer 26.02.2016 17:12:34 frerfe
Быстрый ответ:

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