Я попытался построить и поместить цикл while по-разному и в разных местах и посмотреть на значение $ val как правильную/неправильную переменную, которая будет размещаться в цикле while, но я просто не получаю ее , Я ожидал, что выход будет: 815 830 845 900 ....... до достижения 1900 года.неожиданное поведение while-loop
Вместо этого я получил 815, а затем 1915 1930 1945 гг. До 0000 года, затем он начинается с 1915 года. Кто-то, пожалуйста, скажите мне, что я помещены в неправильное место или какую переменную я использовал неправильно.
date_default_timezone_set('America/New_York');
$st='800';
$et='1900';
$frac = 900;
$x = $et;
$val=0;
if (strlen($st) < 4) {$st = "0".$st;}
$current_time = strtotime(date($st));
$r = $current_time % $frac;
$new_time = $current_time + ($frac-$r);
$val = date('Gi', $new_time);
echo $val."<br>";
while ($val !== $et){
if (strlen($val) < 4) {$st = "0".$val;}
$current_time = strtotime('+ 15 minutes',date($val));
$r = $current_time % $frac;
$new_time = $current_time + ($frac-$r);
$val = date('Gi', $new_time);
echo $val."<br>";
}
ПРИМЕЧАНИЕ К - уценки ИГРОКОВ - Edited POST ОТВЕТ: Вы можете колотить вопрос все, что вы хотите, но дело в том, что это ясный вопрос, очевидно, цель пытается достичь, и это было очистить попытку (один из нескольких), чтобы правильно ее исправить, что не удалось, так что плохой код, неплохое усилие. Поэтому в конце концов я попросил о помощи. Вы используете систему уценки неправильно и по неправильной причине, но все, что у меня малое ожидание, что вы заботитесь. Благодаря тем, которые приложили усилия, фактически были конструктивными и преподавали/помогали.
Вы хотите время, через 15 минут интервилей с того времени и до 1900 года? –
Я бы избегал всей математики даты и времени и просто делал цикл на целых числах. Когда вы получите свой результат, конвертируйте его в дату/время. Это или найти количество секунд между началом и временем окончания и выполнить математику. –
@dagon Да, я пытаюсь обновить значение $ val на каждом цикле с шагом 15 минут. начальное значение $ st и конечное значение равно $ et, оба из которых могут меняться, но в этом случае я просто устанавливаю значения – DMSJax