我們正在將我們的域名轉移到我們最近購買的新專用服務器。新服務器的時區導致我們的附件php代碼出現一些問題。PHP的Unix時間戳年月日關閉
我們的論壇軟件使用下列文件夾結構存儲附件:
/的public_html /論壇/文件/ 2016/2月/ 14/[文件名]
年,從獲得的月和日文件上傳時間戳,它是一個Unix時間戳,例如「1455426488」。那麼這個時間戳轉換爲年,月,日使用下面的PHP代碼:
$date = getdate((int)$attachment['filetime']);
$filepath = $config['upload_path'] . '/' . (string)$date['year'] . '/' . $date['month'] . '/' . (string)$date['mday'];
這我們的舊服務器上運行良好,並收到了服務器,但在新服務器上的「天」是1天這會導致「2月14日」文件上傳到「2月13日」文件夾或「2月15日」文件夾中。請記住,該文件上傳時間爲1455426488在unix時間戳是02/14/2016在上午5:08 UTC時區。
有沒有人有任何建議如何解決這個問題?這是我們論壇系統的重要組成部分,所以如果沒有爲其提供解決方案,我們將無法遷移到新服務器。
感謝,
皮特
順便說一句,無論是舊的和新的服務器使用的是 「美國/芝加哥」 作爲自己的時區(CST)。
你可以試試'$日期=(INT)$附件[ 'FILETIME']; (「Y」,$ date)。「/」。date(「F」,$ date)。「/」。date(「d」, $ date);' –
什麼時區是PHP(美國/芝加哥?)什麼時區是服務器/操作系統(日期+%Z)? – user2182349
@ user2182349 - PHP時區爲「America/Chicago」,服務器/操作系統時區爲「CST」。 –