我正在对每天在不同时间开始 2-3 次的活动进行自动倒计时。
活动每7小时开始一次,所以一天有4个活动,另外3个。
$monday = array( '02:00', '09:00', '16:00', '23:00' );
$tuesday = array( '06:00', '13:00', '20:00' );
$wednesday = array( '03:00', '10:00', '17:00' );
$thursday = array( '00:00', '07:00', '14:00', '21:00' );
$friday = array( '04:00', '11:00', '18:00' );
$saturday = array( '01:00', '08:00', '15:00', '22:00' );
$sunday = array( '05:00', '12:00', '19:00' );
如何让倒计时运行到下一个活动?
示例:如果是星期一 01:30,则应显示还剩 30 分钟
我已经做好倒计时部分了:
$hours = floor($this->sec / 3600);
$minutes = floor(($this->sec / 60) % 60);
$seconds = $this->sec % 60;
return "$hours" . ' hours ' . "$minutes" . ' minutes ' . "$seconds" . ' seconds';
更新:我知道 PHP 不会自行更新。我会手动刷新页面。
function days_hours_minutes_from_now($date)
{
$now = time();
$your_date = strtotime($date);
$datediff = $your_date - $now;
echo "days: " .floor($datediff/(60*60*24));
echo " hours: " .floor($datediff/(60*60)) % 24; //hours
echo " minutes: " .floor($datediff/(60)) % 60; //minutes
echo " seconds: " .$datediff % 60; //seconds
}
days_hours_minutes_from_now("2015-08-19 13:52:28");
天:1小时:0分:14秒:56
尚未经过彻底测试,但应该接近您正在寻找的内容。
您需要将时间与事件开始的时间进行比较以获得倒计时。
但是,正如 RiggsFolly 正确指出的那样,除非您在 JavaScript 中执行此操作,否则您的倒计时不会在用户浏览器中更新,除非他们刷新页面。
编辑:
现在,如果您想确保始终返回 next 事件之前的剩余时间,那么您可以循环遍历一系列日期,按升序排序,并返回第一个结果,其中日期为非负值。如果任何日期超过当前日期/时间,则日将等于 -1