1

我运行这个脚本,它可以很好地估计与天气有关的事情发生之前的时间。但是午夜它变得疯狂,并且在整个午夜时分,它会返回疯狂的负时间,例如 -1100 分钟之类的东西,然后当它到达 0100 小时时,它会恢复正常并报告,例如 20 分钟等。

脚本:

  $timenow = date("H:i:s");

  $eventtime= strtotime("$gettimefromtextfile"); //time the weather event will happen in the near future
 $TimeEnd = strtotime($timenow);
 $Difference = ($eventtime - $TimeEnd);
if ($Difference >= 0) {
 $minutes = floor(($Difference / 60)); 
// print how many minutes until an event happens, discard it if event is in the past

我知道 date 函数在 PHP 5.3 之前的午夜有问题。但我正在运行 PHP 5.3,所以应该不是问题。我不需要日期,它只是我需要的时间,与天气有关的东西最多只报告小时差。

关于可以在午夜停止这种痉挛的替代功能或编码的任何建议?

4

1 回答 1

1

怎么用DateTime::diff?不要重新发明轮子!

<?php
date_default_timezone_set('Europe/Lisbon'); 

$next = new DateTime('18:00:01');
$now = new DateTime();
$diff = $next->diff($now);

echo $diff->format('%h hours, %i minutes');
?>

参考: http: //php.net/manual/en/datetime.diff.php

于 2013-10-29T12:10:48.920 回答