校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > PHP應用跨時區(qū)功能的實現方法

PHP應用跨時區(qū)功能的實現方法

熱門標簽:阿里云400電話申請加工單 抖音有個地圖標注是什么意思 地下城堡2圖九地圖標注 七魚外呼系統(tǒng)停用嗎 九江外呼系統(tǒng) 西區(qū)企業(yè)怎么做地圖標注入駐 海南人工外呼系統(tǒng)有效果嗎 智能電話機器人排名前十名南京 保定crm外呼系統(tǒng)運營商

PHP中要實現一個跨時區(qū)的應用,也就是不同時區(qū)登錄的用戶需要看到自己時區(qū)的時間,同時也要能夠進行時區(qū)的切換。

這里的思路是,系統(tǒng)中所有存儲的時間都是GMT(UTC)時間,用戶登錄時,根據用戶所在的時區(qū)進行對應的顯示。

關于PHP中時間函數的使用就參考:PHP時間函數使用詳解。這里我們先了解一下PHP中時區(qū)的設置方法。PHP中進行設置的方法比較靈活多樣,可以在php.ini中設置date.timezone屬性、可以通過代碼,調用ini_set(‘date.timezone', ‘')設置,也可以使用函數 date_default_timezone_set(),或者在htaccess文件中設置。

服務器的默認時區(qū),如果設置的和我們希望的時區(qū)不符,而且我們也沒有權限修改全局的時區(qū)配置,就只有借助于代碼了。

PHP還提供了一個方便的函數,gmdate(),可以讓我們不用關心服務器的時區(qū)設置而始終獲得GMT時間,我的思路就是基于這個函數。

我的項目中使用了Codeigniter這個框架,框架中的date這個helper提供了幾個方便的函數,可以用來處理應用中的多時區(qū)情況。

其中 now() 始終返回的是gmt的當前時間;local_to_gmt() 可以將本地的時間轉換為gmt時間;gmt_to_local() 可以將gmt時間轉換為本地時間;

考慮一個典型的應用場景:

用戶登陸后,要顯示當前時間。這是我們可以使用now()獲得標準的gmt時間,然后使用gmt_to_local()函數轉化為用戶所在時區(qū)的時間。

用戶要發(fā)布一個時間。用戶發(fā)布了一個“2010-07-10 18:30:00”的時間,我們不能直接存入數據庫,必須先利用local_to_gmt() 轉化標準的gmt時間存入數據庫,這樣才能保證整個系統(tǒng)中的時間保持一致。

這兩個函數的細節(jié),其實都是根據時區(qū),然后進行相應的運算得來。計算的時候,也可以考慮夏令時,但是所在時區(qū)夏令時的開始和結束時間,則需要自己維護。

codeigniter中提供了一份較為完整的時區(qū)列表,timezone_menu() 可以顯示一個時區(qū)的下拉列表,但是這個列表中的時間不能完全對應到PHP自帶的時區(qū)顯示上,這是PHP本身的問題,不過可以通過下面這個函數,來讓輸入的每個時區(qū),都可以獲得一個對應的時區(qū)文字顯示。

if( ! function_exists("tz_offset_to_name") ) 
{ 
  /* Takes a GMT offset (in hours) and returns a timezone name */ 
  function tz_offset_to_name($offset) 
  { 
      $offset *= 3600; // convert hour offset to seconds 
      $abbrarray = timezone_abbreviations_list(); 
      foreach ($abbrarray as $abbr) 
      { 
          foreach ($abbr as $city) 
          { 
              if ($city['offset'] == $offset) 
              { 
                  return $city['timezone_id']; 
              } 
          } 
      } 
      return FALSE; 
  } 
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • 關于php程序報date()警告的處理(date_default_timezone_set)
  • PHP中設置時區(qū)方法小結
  • PHP跨時區(qū)(UTC時間)應用解決方案
  • PHP中遇到的時區(qū)問題解決方法
  • PHP獲取中國時間(上海時區(qū)時間)及美國時間的方法
  • php時區(qū)轉換轉換函數
  • php輸出全球各個時區(qū)列表的方法
  • 有關 PHP 和 MySQL 時區(qū)的一點總結
  • PHP中設置時區(qū),記錄日志文件的實現代碼
  • PHP date_default_timezone_set()設置時區(qū)操作實例分析

標簽:韶關 九江 遼陽 甘肅 昭通 十堰 梅河口 涼山

巨人網絡通訊聲明:本文標題《PHP應用跨時區(qū)功能的實現方法》,本文關鍵詞  PHP,應用,跨,時區(qū),功能,的,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP應用跨時區(qū)功能的實現方法》相關的同類信息!
  • 本頁收集關于PHP應用跨時區(qū)功能的實現方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 木兰县| 邹平县| 上高县| 兴安县| 马山县| 涞源县| 监利县| 肥城市| 太原市| 临桂县| 周至县| 和林格尔县| 北川| 盐池县| 邻水| 鄂州市| 五华县| 广昌县| 民乐县| 通渭县| 洛浦县| 固安县| 南华县| 肇州县| 北碚区| 阿克陶县| 拜城县| 双牌县| 深水埗区| 建始县| 武夷山市| 都江堰市| 河南省| 盐津县| 堆龙德庆县| 林州市| 永定县| 万荣县| 凌云县| 河津市| 密云县|