[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правильно написать цикл между 2 датами!!!
HIDDENSY
Всем привет.
Подскажите как правильно написать цикл между двумя заданными датами с интервалом 5 минут.

Пробую так:

$DateStart = "2018-02-10 10:00:00";
$DateStop = "2018-02-12 20:00:00";

echo( $DateStart." (".strtotime(date($DateStart)).")<br>");
echo( $DateStop." (".strtotime(date($DateStop)).")<br><br>");

for($DateTime = strtotime(date($DateStart)); $DateTime <= strtotime(date($DateStop)); $DateTime = $DateTime+300){
echo(date("Y-m-d H:i:s", strtotime($DateTime))."<br>");
}


В выводе чепуха, даты не те.

Как же правильно написать цикл между 2-мя датами?
Oyeme
В начале класса добавь

use DateTime;
use DatePeriod;
use DateInterval


$dateRangePeriod = new DatePeriod(
new DateTime('2018-02-10 10:00:00'),
new DateInterval('PT5M'), //5 min interval
new DateTime('2018-02-12 20:00:00')
);


foreach ($dateRangePeriod as $key => $date) {
echo $date->format('Y-m-d h:i:s')."<br>";
}
HIDDENSY
Цитата (Oyeme @ 13.02.2018 - 12:27)
В начале класса добавь

use DateTime;
use DatePeriod;
use DateInterval


$dateRangePeriod = new DatePeriod(
new DateTime('2018-02-10 10:00:00'),
new DateInterval('PT5M'), //5 min interval
new DateTime('2018-02-12 20:00:00')
);


foreach ($dateRangePeriod as $key => $date) {
echo $date->format('Y-m-d h:i:s')."<br>";
}

Спасибо.
killer8080
Цитата (HIDDENSY @ 13.02.2018 - 15:19)
В выводе чепуха, даты не те.

это в коде чепуха, нафига ты там везде date() напихал? user posted image
$DateStart = "2018-02-10 10:00:00";
$DateStop = "2018-02-12 20:00:00";

echo( $DateStart." (".strtotime($DateStart).")<br>");
echo( $DateStop." (".strtotime($DateStop).")<br><br>");

for($DateTime = strtotime($DateStart); $DateTime <= strtotime($DateStop); $DateTime += 300){
echo(date("Y-m-d H:i:s", $DateTime)."<br>");
}
Быстрый ответ:

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