大家好我有一个代码在特定时间开始和结束,我的代码工作正常,但我想在循环的数据中使用此代码 例如,我在循环中输入名称,我希望每个名称在特定时间内开始和结束:
这是我的代码:
<?php
date_default_timezone_set('America/New_York');
$time = date('Y:m:d H:i:s');
$timestart = date('Y:m:d H:i:s'); //time start
$timeend = '2016:11:17 10:56:00'; //time end
if($time >= $timeend){
echo "time end";
}else{
echo 'untel end time';
}
$now = new DateTime();
$future_date = new DateTime($timeend);
$interval = $future_date->diff($now);
?>
我想知道如何将它与循环数据一起使用?
感谢。
答案 0 :(得分:1)
您可以使用EV或事件扩展或循环实现。我更喜欢EV扩展这项任务
并创建计时器,例如:
// Required create variable!
$w = new EvTimer($needWorkedSeconds, $repeatAfterSecond, function ($w) {
echo "iteration = ", Ev::iteration(), PHP_EOL;
});
// Loop until Ev::stop() is called or all of watchers stop
Ev::run();
OR使用事件(但我更喜欢使用套接字的事件):
$base = new \EventBase();
$e = \Event::timer($base, function($n) use (&$e) {
echo "$n seconds elapsed\n";
if($isTimeEndNow)
{
$e->delTimer();
}
}, $repeatAfterSecond);
$e->addTimer($repeatAfterSecond);
$base->loop();
或者您可以尝试,例如:
while(true)
{
if($isTimeEndNow)
{
break;
}
sleep($repeatAfterSecond);
}
在示例中,我使用未声明的变量:
$repeatAfterSecond - seconds to next iteration or next call
$isTimeEndNow - this is: time() > $endTimestamp
$needWorkedSeconds - this is seconds: time_start - time_end
<强>注意瞬!!!小心!我认为你错了,如果你想使用MySQL,如果你需要在具体的时间内使用死脚本。检查你的算法!!!