我一直在尝试创建一个定时器,每天到下午2点倒计时。下午2点后,它应显示第二天下午2点之前的小时数。我已经能够在以后的日期使用以下代码,而不是每天“今天”。
date_default_timezone_set('America/New_York');
$iTimeTo = strtotime('today 14:00)';
$iDiffTime = $iTimeTo - time();
printf("Remaining: %s\n", date('H:i', $iDiffTime));
输出未显示正确的剩余小时数。
答案 0 :(得分:1)
strtotime('today 14:00');
在下午2点之后成为过去,所以你将在下午2点到午夜之间开始获得无意义的结果。
date_default_timezone_set('America/New_York');
$today = strtotime('today 14:00');
$tomorrow = strtotime('tomorrow 14:00');
$now = time();
$timeLeft = ($now > $today ? $tomorrow : $today) - $now;
printf("Remaining: %s\n", gmdate("H:i:s", $timeLeft));
答案 1 :(得分:0)
$iTimeTo = strtotime('today 14:00)';
应该是:
$iTimeTo = strtotime('today 14:00');
除此之外,我认为没有理由说它不起作用,我已经测试了它并且它给了我“剩余:20:59”。
答案 2 :(得分:0)
您可以使用gmdate()
功能格式化剩余的"秒"进入小时:分钟:这样的秒数:
date_default_timezone_set('America/New_York');
$iTimeTo = strtotime('today 14:00');
$iDiffTime = $iTimeTo - time();
printf("Remaining: %s\n", gmdate("H:i:s", $iDiffTime));
输出:
Remaining: 01:59:55