0

我有这段代码可以获取今天日期的日出和日落时间。

代码是:

<?php
function miltoampm($hour) {   
    $mins = substr($hour,-2);
    $ampm = ($hour >=12 && $hour <24) ? "PM" : "AM";   
    $newhour = ($hour % 12 === 0) ? 12 : $hour % 12;   
    return $newhour . ':' . $mins . " " . $ampm;   
}   


//Calculate the sunrise and sunset time
//Latitude: 41.81
//Longitude: -87.68
//Zenith ~= 90
//offset: -5 GMT is Chicago
$sunriseTime = (date_sunrise(time(),SUNFUNCS_RET_STRING,41.8119,-87.6873,90,-5)); //Sunrise Time
$sunsetTime = (date_sunset(time(),SUNFUNCS_RET_STRING,41.8119,-87.6873,90,-5)); //Sunset Time
?>

现在我想这样做,但我真的不知道如何:

If current time is anywhere from $sunrise and less then $sunset then
    $Img = "sun.png";
else
    $Img = "noon.png";
end if
4

2 回答 2

1

date_sunrise将您的返回格式修改为SUNFUNCS_RET_TIMESTAMPSUNFUNCS_RET_STRING以便您可以将其与当前时间戳进行比较:

$sunriseTime = date_sunrise( time(), SUNFUNCS_RET_TIMESTAMP, 41.8119, -87.6873, 90, -5 );
$sunsetTime  = date_sunset(  time(), SUNFUNCS_RET_TIMESTAMP, 41.8119, -87.6873, 90, -5 );

...然后进行比较

$img = time() > $sunriseTime && time() < $sunsetTime ? 'sun.png' : 'moon.png';

...然后显示您的结果图像

echo '<img src="' . $img . '" />';

然后您可以打印出日出日落时间:

echo 'Sunrise: ' . strftime("%r", $sunriseTime) . '<br/>';
echo 'Sunset: ' . strftime("%r", $sunsetTime);
于 2013-08-16T20:53:49.363 回答
0

像这样的东西?这将检查 currentTime 是否在日出和日落之间。

<?php
    if(currentTime >= sunrise && currentTime <= sunset){
      echo "sunrise";
    }
    else {
      echo "sunset";
    }
?>
于 2013-08-16T20:36:39.523 回答