PHP事件倒计时并在事件结束时更新

PHP事件倒计时并在事件结束时更新,php,time,countdown,Php,Time,Countdown,我有一个Jquery倒计时,直到每周的活动。活动时间为美国中部时间每周日晚上7:00。我用php生成倒计时。我正在寻找一种方法来设置倒计时,以便在当前事件发生一个小时后的一周后显示下一个事件 例如: 活动时间为每周日下午7:00,持续一小时 如果你在周日下午6点查看网站,它应该会开始倒计时一个小时。(00:01:00:00) 如果您在周日晚上7:00-8:00查看该站点,它将显示0。(00:00:00:00) 如果您在周日晚上9:00观看该活动,它将显示6天22小时0分0秒(06:22:00:0

我有一个Jquery倒计时,直到每周的活动。活动时间为美国中部时间每周日晚上7:00。我用php生成倒计时。我正在寻找一种方法来设置倒计时,以便在当前事件发生一个小时后的一周后显示下一个事件

例如:

活动时间为每周日下午7:00,持续一小时

如果你在周日下午6点查看网站,它应该会开始倒计时一个小时。(00:01:00:00) 如果您在周日晚上7:00-8:00查看该站点,它将显示0。(00:00:00:00) 如果您在周日晚上9:00观看该活动,它将显示6天22小时0分0秒(06:22:00:00)

我有代码来显示我输入的日期和时间的倒计时,但我希望这不会每周更改代码

<?php 
        $rem = strtotime('2012-09-02 19:00:00') - time();
        $day1 = floor($rem / 86400);
        $hr1  = floor(($rem % 86400) / 3600);
        $min1 = floor(($rem % 3600) / 60);
        $sec1 = ($rem % 60);
        $day = sprintf('%02d',$day1);
        $hr = sprintf('%02d',$hr1);
        $min = sprintf('%02d',$min1);
        $sec = sprintf('%02d',$sec1);
        echo "$day:";
        echo "$hr:";
        echo "$min:";
        echo "$sec"; ?>

有什么想法吗

$time = new DateTime("Next Sunday 7:00 PM", new DateTimeZone("America/Chicago"));
$diff = $time->diff(new DateTime("now"));
echo $diff->format("%D:%H:%I:%S");

根据最适合您的方式更改。不要依赖UTC/CST/任何东西,给你一个合适的位置,这样你的时间就准确了。

相信我,我告诉你:
DateTime
对象会帮你省去很多麻烦。我意识到我拥有的代码不是最好的方法,但它现在起作用了。可能重复@Jaret这是一种糟糕的编程态度,特别是当给出的备选方案更容易实现时。出于某种原因,它显示的是对象(DateTime)#1(3){[“date”]=>string(19)“2012-09-09 19:00:00”[“timezone\u type”]=>int(3)[“timezone”]=>string(15)“America/Chicago”}07:03:35:28,而不仅仅是07:03:35:28