簡體   English   中英

如何獲取物理服務器時區偏移量(不是從php.ini或IP)?

[英]How to get the physical server timezone offset (not from php.ini or IP)?

如何獲得物理機位置的時區偏移量 ,而不是php.ini報告的時區(當然也不能通過geoIP報告)?

從php.ini或腳本中,我們可以輕松設置默認時區。 例如,在我的盒子上

時區 ]

在PHP中,

if (date_default_timezone_get()) {
    echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />';
}

if (ini_get('date.timezone')) {
    echo 'date.timezone: ' . ini_get('date.timezone');
}

date_default_timezone_set:亞洲/東京
date.timezone:亞洲/東京

但是,物理服務器位於Mountain Time,訪問日志中包含時區偏移字符串-0700。


解決:使用exec()我們可以獲得系統時間和當前時區偏移量 這正是所需要的。 感謝@codisfy的啟發。

echo shell_exec('date +\'%:z\'');

-07:00


編輯:這個問題( PHP 5.4不能自行確定時區 )是關於獲取時區名稱的 ,但重要的是時區偏移量 感謝您指出可能的重復社區,community,這是一個不同的要求。

從注釋到答案:您可以使用shell_exec()獲得系統時間。 使用它可以像在shell上一樣運行命令並返回輸出。

所以做這樣的事情可以幫助:

shell_exec('date +\\'%Z\\'');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM