亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • 如何用PHP實(shí)現(xiàn)多線程編程

    如何用PHP實(shí)現(xiàn)多線程編程

    原以為 PHP 普遍都是單線程模型,并不適合多線程領(lǐng)域,發(fā)現(xiàn)PHP的多線程也頗有可取之處,用來(lái)解決某些問(wèn)題竟然非常適合。本文對(duì)比多進(jìn)程介紹了下多線程的優(yōu)勢(shì)和適用場(chǎng)景,提出了一種巧用方案,并使用PHP代碼實(shí)現(xiàn)了多線程的常見用法。
    2021-05-05
  • PHP的Yii框架中移除組件所綁定的行為的方法

    PHP的Yii框架中移除組件所綁定的行為的方法

    這篇文章主要介紹了PHP的Yii框架中移除組件所綁定的行為的方法,可以用detachBehavio方法或者移除全部行為,需要的朋友可以參考下
    2016-03-03
  • PHP 登錄記住密碼實(shí)現(xiàn)思路

    PHP 登錄記住密碼實(shí)現(xiàn)思路

    在登錄的時(shí)候記住用戶輸入的密碼在某些情況下是很有必要的,下面是一個(gè)小例子,感興趣的朋友可以參考下哈,希望對(duì)你有所幫助
    2013-05-05
  • php mysql獲取表字段名稱和字段信息的三種方法

    php mysql獲取表字段名稱和字段信息的三種方法

    本文章向大家介紹php獲取mysql表字段名稱和字段信息的三種方法,分別為:mysql_fetch_field方法、desc方法和SHOW FULL FIELDS方法,
    2016-11-11
  • PHP常見錯(cuò)誤提示含義解釋(實(shí)用!值得收藏)

    PHP常見錯(cuò)誤提示含義解釋(實(shí)用!值得收藏)

    這篇文章主要介紹了PHP常見錯(cuò)誤提示含義解釋,包含了各種常見的PHP錯(cuò)誤提示及具體含義,便于查詢參考,需要的朋友可以參考下
    2016-04-04
  • php刪除頁(yè)面記錄 同時(shí)刷新頁(yè)面 刪除條件用GET方式獲得

    php刪除頁(yè)面記錄 同時(shí)刷新頁(yè)面 刪除條件用GET方式獲得

    在某個(gè)頁(yè)面上顯示查詢數(shù)據(jù),并在每條數(shù)據(jù)后增加刪除功能,點(diǎn)擊“刪除”,刪除掉數(shù)據(jù),同時(shí)刷新頁(yè)面
    2012-01-01
  • PHP如何利用P3P實(shí)現(xiàn)跨域

    PHP如何利用P3P實(shí)現(xiàn)跨域

    在開發(fā)中,我們碰到的跨域主要還是糾結(jié)在IE,頁(yè)面中的IFRAME或者FRAME或者JS跨域的時(shí)候,IE有安全策略限制頁(yè)面不帶cookie,但是如果我們加上P3P,就沒有這策略的限制。這也是P3P來(lái)突破跨域的可行前提
    2013-08-08
  • php跨站攻擊實(shí)例分析

    php跨站攻擊實(shí)例分析

    這篇文章主要介紹了php跨站攻擊的原理與防范技巧,以具體實(shí)例對(duì)php跨站攻擊進(jìn)行了較為詳細(xì)的分析,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-10-10
  • PHP之變量、常量學(xué)習(xí)筆記

    PHP之變量、常量學(xué)習(xí)筆記

    親密接觸PHP之變量、常量學(xué)習(xí)筆記(閱讀筆記自PHP手冊(cè)) PHP 中一個(gè)美元符號(hào)($)后面跟上一個(gè)變量名稱,即表示一個(gè)變量。變量的名稱是對(duì)大小寫敏感的。其中變量名允許數(shù)字或下劃線打頭。
    2008-03-03

最新評(píng)論