日出日落時間
阿恆
電台的交通消息報導經常都這樣說:「……今天的日落時間是黃昏 7 時,明早的日出時間是 6 時 13 分,根據交通法例,在日落之後至日出之前,車輛必須開著車頭燈……」用 PHP 計算日出和日落時間非常簡單。
開始之前你需要蒐集一些基本資料:
香港的經緯度
最簡單的方法是上網找,用 Google 輕而易舉便可以找到準確至小數點後 5 個位的數字。若果你是 PHP 的超級粉絲,也可以透過下面的程式查看:
|
|
確認伺服器上 PHP 的時區
自從 PHP 5.1 開始,很多與日期時間相關的函式都在運算時考慮當前的時區,例如你要使用 date() 把一個 timestamp 轉換成容易閱讀的「年/月/日 時:分:秒」格式,它便會使用內部設定的時區值,你必須確認伺服器上 PHP 設定的時區就是你本人所在地的時區,最簡單的方法是不去理會系統本來設定的值,自行設定你認為正確的數值:
|
|
現在萬事俱備,只欠那個計算日出日落時間的神祕東西,那就是函式 date_sun_info(),我們先看看完整的程式碼:
|
|
第 2 行設定 PHP 所有日期時間函式均使用香港時區,第 3 行呼叫 date_sun_info(),輸入今天的日期的 timestamp 和香港的經緯度,第 4 行的迴圈會列出 date_sun_info() 送回來的資料,其中 sunrise 和 sunset 就是日出和日落的時間,不妨把結果與香港天文台網頁的資料比對一下。下面是樣本輸出:
|
|
你或許會問,北極圈內夏天 24 小時都見到太陽,那麼日出和日落時間是甚麼呢?這個我留待你們自己尋找答案了。