最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP應(yīng)用跨時區(qū)功能的實現(xiàn)方法

 更新時間:2019年03月21日 16:08:00   作者:CODETC  
今天小編就為大家分享一篇關(guān)于PHP應(yīng)用跨時區(qū)功能的實現(xiàn)方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

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

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

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

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

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

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

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

考慮一個典型的應(yīng)用場景:

用戶登陸后,要顯示當(dāng)前時間。這是我們可以使用now()獲得標(biāo)準(zhǔn)的gmt時間,然后使用gmt_to_local()函數(shù)轉(zhuǎn)化為用戶所在時區(qū)的時間。

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

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

codeigniter中提供了一份較為完整的時區(qū)列表,timezone_menu() 可以顯示一個時區(qū)的下拉列表,但是這個列表中的時間不能完全對應(yīng)到PHP自帶的時區(qū)顯示上,這是PHP本身的問題,不過可以通過下面這個函數(shù),來讓輸入的每個時區(qū),都可以獲得一個對應(yīng)的時區(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; 
  } 
}

總結(jié)

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

相關(guān)文章

  • 刷新PHP緩沖區(qū)為你的站點加速

    刷新PHP緩沖區(qū)為你的站點加速

    這篇文章主要介紹了通過刷新PHP緩沖區(qū)可以加速你的站點,非常實用的小技巧,需要的朋友可以參考下
    2015-10-10
  • PHP array_flip() 刪除重復(fù)數(shù)組元素專用函數(shù)

    PHP array_flip() 刪除重復(fù)數(shù)組元素專用函數(shù)

    array_flip() 返回一個反轉(zhuǎn)后的 array,例如 trans 中的鍵名變成了值,而 trans 中的值成了鍵名。
    2010-05-05
  • Zend的AutoLoad機制介紹

    Zend的AutoLoad機制介紹

    在使用zend framework的時候,最先引入的一定是AutoLoad的機制,這里就想分析下Zend的AutoLoad是怎么引入的
    2012-09-09
  • PHP中全面阻止SQL注入式攻擊分析小結(jié)

    PHP中全面阻止SQL注入式攻擊分析小結(jié)

    PHP是一種力量強大但相當(dāng)容易學(xué)習(xí)的服務(wù)器端腳本語言,即使是經(jīng)驗不多的程序員也能夠使用它來創(chuàng)建復(fù)雜的動態(tài)的web站點。然而,它在實現(xiàn)因特網(wǎng)服務(wù)的秘密和安全方面卻常常存在許多困難
    2012-01-01
  • PHP中預(yù)定義的6種接口介紹

    PHP中預(yù)定義的6種接口介紹

    這篇文章主要介紹了PHP中預(yù)定義的6種接口介紹,本文講解了Traversable、Iterator、IteratorAggregate、ArrayAccess、Serializable、Closure,需要的朋友可以參考下
    2015-05-05
  • PHP封裝的字符串加密解密函數(shù)

    PHP封裝的字符串加密解密函數(shù)

    這篇文章主要給大家匯總介紹了PHP封裝的字符串加密解密函數(shù)以及使用方法,非常的簡單實用,有需要的小伙伴可以參考下
    2015-12-12
  • 修改Zend引擎實現(xiàn)PHP源碼加密的原理及實踐

    修改Zend引擎實現(xiàn)PHP源碼加密的原理及實踐

    來源:phphot PHP文件的源碼都是明文,這對于某些商業(yè)用途來說,并不適合。 因此考慮使用加密的手段保護源碼。 實在不耐煩等待zend出編譯器,而且編譯和加密本質(zhì)上不是一回事兒。自己動手、開始修改。
    2008-04-04
  • php實現(xiàn)的Cookies操作類實例

    php實現(xiàn)的Cookies操作類實例

    這篇文章主要介紹了php實現(xiàn)的Cookies操作類及其用法實例,包括了常見了保存、讀取、更新及清除cookie等操作,在需要進行cookie操作時非常具有實用價值,需要的朋友可以參考下
    2014-09-09
  • 如何使用php判斷服務(wù)器是否是HTTPS連接

    如何使用php判斷服務(wù)器是否是HTTPS連接

    需要判斷代碼運行環(huán)境是否是HTTPS服務(wù)器?下面的代碼可以幫助你實現(xiàn),非常簡單
    2013-07-07
  • 簡單說說PHP優(yōu)化那些事(經(jīng)驗分享)

    簡單說說PHP優(yōu)化那些事(經(jīng)驗分享)

    下面我想講講我對PHP優(yōu)化的理解。優(yōu)化的目的是花最少的代價換來最快的運行速度與最容易維護的代碼
    2014-11-11

最新評論

江口县| 秭归县| 密山市| 潼南县| 盐源县| 越西县| 田东县| 沙坪坝区| 古浪县| 侯马市| 榆中县| 五峰| 临洮县| 加查县| 青神县| 龙南县| 南昌县| 四子王旗| 湟中县| 花垣县| 文成县| 灯塔市| 米林县| 孝义市| 剑阁县| 鄱阳县| 来安县| 泾源县| 沅陵县| 霍城县| 南京市| 乐业县| 榆中县| 平谷区| 开远市| 肇州县| 宁阳县| 米林县| 尼勒克县| 四子王旗| 聊城市|