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_TIMESTAMPの代わりに変更します。SUNFUNCS_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 に答える