PHP Какая дата и время каждые X минут для следующих Y минут? - PullRequest
0 голосов
/ 23 марта 2020

Windows 10 64-бит. PHP 7.4.1

Ваша любимая веб-страница возвращает данные с URL-адресами, построенными вокруг временных отметок? Этот вопрос является попыткой повторить эти URL с помощью PHP date ().

Для меня самая сложная часть - это точка отсчета:

Начиная с минут, округленных до ближайших 10 ( 19 становится 10) какой будет год, месяц, день, час, минута и секунда всегда 00 каждые 10 минут в течение 120 минут? Метки времени имеют два формата:

032320200030 and 202003230030

mdYHi and YmdHi

Мне нравится strtotime.

date('mdYHi', strtotime("+10 minutes"));
date('YmdHi', strtotime("+10 minutes"));

, но я не могу включить в него точку отскока.

(floor(date("i") / 10) * 10)

Начиная с минут, округленных до ближайших 10 (19 становится 10).

1 Ответ

0 голосов
/ 24 апреля 2020

Windows 10 64-бит. PHP 7.4.1

PHP Начиная с этажа (дата («i») / 10) * 10 какая будет дата («Y»), дата («m»), дата ( «D»), дата («H»), дата («i») каждые 10 минут в течение 120 минут на сервере, возвращающем данные:

<?php 
ECHO  "<br />This is ".$_SERVER['SCRIPT_FILENAME']."<br />"; echo "Timestamp ".date("H:i:s mdy")."<br />";
// $executionStartTime = microtime(true); //measure performance 
// restore leading zero if minutes < than 10.
if (date("i") < "10"){$zfloordate="0".(floor(date("i") / 10) * 10);}else{$zfloordate=(floor(date("i") / 10) * 10);} 
// ob_start(); //output to file to measure performance
echo "the minute is :".date("i")."<br />"; 
echo "the floor minute is: $zfloordate<br />";
// adjust timezone: The server creating the timestamps is in a different timezone (+3). Flooring minute < 10 returns 0. Restore leading zero w/ str_pad. Second is always 00.
$selectedTime = date("YmdH", strtotime("+3 hours")).str_pad((floor(date("i") / 10) * 10), 2, '0', STR_PAD_LEFT).'00';
$z = DateTime::createFromFormat('YmdHis', $selectedTime);
$zY["00"] = $z->format('YmdHis'); 
for($i = 10; $i <= 110; $i+=10) { 
$z->modify('+10 minutes'); 
$zY["$i"] = $z->format('YmdHis'); 
}
$selectedTime = date("mdYH", strtotime("+3 hours")).str_pad((floor(date("i") / 10) * 10), 2, '0', STR_PAD_LEFT).'00';
$z = DateTime::createFromFormat('mdYHis', $selectedTime);
$zM["00"] = $z->format('mdYHis'); 
for($i = 10; $i <= 110; $i+=10) { 
$z->modify('+10 minutes'); 
$zM["$i"] = $z->format('mdYHis'); 
} 
echo "<br />";
foreach ($zY as $key => $value){echo "The value at \$zY$key is $value<br />";} 
echo "<br />";
foreach ($zM as $key => $value){echo "The value at \$zM$key is $value<br />";} 
echo "Year-Month-Day-Adjusted Timezone Hour-Minute-Seconds ".date("Y-m-d-H-i-", strtotime("+180 minutes"))."00"."<br />";

// $executionEndTime = microtime(true); //measure performance 
// $seconds = $executionEndTime - $executionStartTime; //measure performance 
// echo "<br />Took $seconds seconds to execute."; //measure performance 
// $htmlStr = ob_get_contents(); //output to file
// ob_end_clean(); //output to file
// file_put_contents("tmp5.txt", $htmlStr); //output to file
?>
...