php strtotime每日倒计时到特定时间

时间:2013-10-22 15:56:20

标签: php

我一直在尝试创建一个定时器,每天到下午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));  

输出未显示正确的剩余小时数。

3 个答案:

答案 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