PHP處理時間和時區需注意以下三點!

2020-10-21 18:01:06

推薦:《》

PHP

當被問及是否很難處理日期和時區時,超過 50%的開發人員回答「是」。我的猜測是,那些對這項民意調查說「不」的人要麼已經明白了這一點,要麼他們沒有與必須迎合全球使用者的平臺/應用程式合作。

無論如何,我想建立一篇部落格文章,詳細介紹我是如何處理日期和時區的。我想只要遵循這些簡單的規則,你就不會那麼頭疼了。

規則 #1 - 在資料庫中儲存 UTC 格式的 DATETIMES 和後端程式碼。

所有與日期相關的資料都要保持一致,這一點很重要。在資料庫中儲存日期時,它們應始終使用 UTC 格式。如果你不熟悉什麼是 UTC,那麼它是所有主要時區所依據的主要時間標準。主要時區只是 UTC 的偏移量。此外,在使用後端程式碼處理日期時,請確保日期時間為 UTC 格式。

規則 #2 - 使用前端程式碼將 DATETIMES 轉換為使用者的本地時區。

雖然你的後端將返回 UTC 時間,但是前端可以很容易地將這些時間轉換為使用者的本地時區。這樣做會在後端(以UTC為控制程式碼)和前端(以使用者本地時間為控制程式碼)之間灌輸職責分離。通過使用 ISO 8601 等標準,保持前端日期時間格式的一致性。當你向後端傳送請求時,請以 ISO 8601 格式傳送日期時間,以便後端可以輕鬆地將其轉換為相應的 UTC 日期時間。

規則 #3 - 使用日期時間庫。

在所有主要的 Web 開發語言/框架中都存在用於更好地處理日期時間的庫。這些使得基於標準(例如 ISO 8601 )進行轉換或格式化變得容易得多。在JavaScript 中要檢視的一個範例庫是 Moment.js。 在 PHP 中要檢視的一個範例庫是 Carbon。

通過遵循這些規則,你應該在如何處理日期時間方面灌輸一個有效的流程。

資料:

  • UTC時間標準 - https://en.wikipedia.org/wiki/Coordinated_Universal_Time
  • ISO 8601 時間格式標準 - https://en.wikipedia.org/wiki/ISO_8601
  • Moment JS 日期時間庫 - https://momentjs.com/
  • Carbon PHP 日期時間庫 - https://carbon.nesbot.com/docs/

原文地址:https://dev.to/corykeane/3-simple-rules-for-effectively-handling-dates-and-timezones-1pe0

譯文地址:https://learnku.com/php/t/50855

以上就是PHP處理時間和時區需注意以下三點!的詳細內容,更多請關注TW511.COM其它相關文章!