pHp語言中的時(shí)區(qū)設(shè)置有兩種方法和通過函數(shù)設(shè)置

2023-12-07    分類: 網(wǎng)站建設(shè)

一年12個(gè)月,一個(gè)月31天(或30天,二月28天,閏年29天),一周7天……這些都是基本常識(shí)。但是計(jì)算機(jī)本身并不能分辨數(shù)據(jù)的對(duì)與錯(cuò),它只能依靠開發(fā)者提供的功能來執(zhí)行或檢查。通過pHp中的()函數(shù)檢查日期和時(shí)間的有效性。語法如下: bool (int, int day, int year) 參數(shù)的有效值為1到12; day參數(shù)的有效值為當(dāng)月大天數(shù),例如:一月為31天,二月為29天(閏年);參數(shù) Year 的有效值為 1 到。如果驗(yàn)證日期有效,則返回 TRUE,否則返回。 【例12-7】驗(yàn)證2010年2月是28天還是29天,具體代碼如下。運(yùn)行結(jié)果是:2010年2月是28天12.3.3 檢查日期時(shí)間倒計(jì)時(shí)的有效性是大家生活中經(jīng)常用到的功能,比如:高考倒計(jì)時(shí),春節(jié)倒計(jì)時(shí),等等。 。下面使用pHp的日期時(shí)間函數(shù)設(shè)計(jì)2013年元旦倒計(jì)時(shí)程序。運(yùn)行效果如圖12-6所示。圖12-6 倒計(jì)時(shí)的原理很簡單,就是用固定時(shí)間減去當(dāng)前時(shí)間,結(jié)果就是剩余時(shí)間。完成時(shí)間的加減,類似于比較大小,必須將時(shí)間轉(zhuǎn)換為時(shí)間戳,然后才能計(jì)算,最后將時(shí)間戳轉(zhuǎn)換為日期輸出。

代碼如下: 12.4 綜合例子-倒計(jì)時(shí)(1)pHp默認(rèn)使用標(biāo)準(zhǔn)格林威治標(biāo)準(zhǔn)時(shí)間(即使用零時(shí)區(qū))。(2)更改pHp語言設(shè)置時(shí)區(qū)有兩種方式:在pHp.INI文件中設(shè)置和通過函數(shù)設(shè)置。(3)對(duì)日期時(shí)間的處理可分為:格式化日期時(shí)間、獲取日期時(shí)間信息、獲取本地化date 和 Time 并檢查日期和時(shí)間的有效性(4)pHp 中,通過 date() 函數(shù)格式化本地日期和時(shí)間。(5)pHp 中,() 函數(shù)用于獲取相關(guān)性日期和時(shí)間的指定部分)信息。(6)在pHp中,通過()函數(shù)檢查日期和時(shí)間的有效性。知識(shí)點(diǎn)提煉12-1打印出前一天的時(shí)間格式用pHp is 2006-5-10 22:21:21. 12-2 為什么date函數(shù)格式化的時(shí)間與實(shí)際時(shí)間相差8小時(shí)? 12-3 pHp使用da te() 函數(shù)將時(shí)間輸入到數(shù)據(jù)庫中。 12-4 php中如何查看時(shí)間函數(shù)? 12-5 php中如何更改時(shí)間 正常時(shí)間(2012-05-16)這種格式的格式化練習(xí)* * Logo Logo Logo Logo Logo Logo Logo Logo Logo 本章要求:第12章日期和時(shí)間時(shí)間pHp的概念在pHp配置文件 pHp.INI 設(shè)置服務(wù)器時(shí)區(qū) 通過()函數(shù)設(shè)置網(wǎng)站當(dāng)前時(shí)區(qū) 獲取任意日期時(shí)間的UNIX時(shí)間戳 獲取當(dāng)前時(shí)間戳 轉(zhuǎn)換將日期和時(shí)間轉(zhuǎn)換為時(shí)間戳 日期和時(shí)間格式化輸出 獲取當(dāng)前日期和時(shí)間 驗(yàn)證日期和時(shí)間 有效性 主要內(nèi)容 1. pHp 的時(shí)間概念 2. UNIX 時(shí)間戳 3. 日期和時(shí)間處理 4.綜合例子-倒計(jì)時(shí)第12章日期和時(shí)間12.1 pHp的時(shí)間概念12.1.1 在pHp.INI文件中設(shè)置時(shí)區(qū)12.1.2 通過函數(shù)在php.ini文件中設(shè)置時(shí)區(qū),需要定位到[date]下的“;date.=”選項(xiàng),去掉前面的分號(hào)和將其值設(shè)置為本地時(shí)區(qū)使用的時(shí)間。

例如本地時(shí)區(qū)為東巴區(qū),則可以將“date.=”的值設(shè)置為:pRC(中華人民共和國)、Asia/(香港)、Asia/(上海)或Asia /(烏魯木齊)等等,這是東八區(qū)的時(shí)代。如圖12-1所示。圖12-1 設(shè)置pHp的時(shí)區(qū)設(shè)置完成后,保存文件并重啟服務(wù)器。 12.1.1 在pHp.INI文件中設(shè)置時(shí)區(qū) 在應(yīng)用中,在日期時(shí)間函數(shù)前使用()函數(shù)也可以完成時(shí)區(qū)設(shè)置。 () 函數(shù)的語法如下: ();參數(shù)是pHp可以識(shí)別的時(shí)區(qū)名稱。如果 pHp 無法識(shí)別時(shí)區(qū)名稱,則系統(tǒng)使用 UTC 時(shí)區(qū)。例如:可以用來設(shè)置北京時(shí)間的時(shí)區(qū)包括:pRC、Asia/(重慶)、Asia/(上海)或Asia/(烏魯木齊),這些時(shí)區(qū)名稱是等價(jià)的。注意:如果服務(wù)器使用零時(shí)區(qū),則不能直接修改php.ini文件,只能通過()函數(shù)設(shè)置時(shí)區(qū)。

12.1.2 通過函數(shù)設(shè)置時(shí)區(qū) 12.2 UNIX 時(shí)間戳 12.2.1 獲取任意日期和時(shí)間的時(shí)間戳 12.2.2 獲取 time 12.2.3 日期和時(shí)間轉(zhuǎn)換為UNIX時(shí)間戳()函數(shù)將時(shí)間轉(zhuǎn)換為Unix時(shí)間戳。語法如下: int (int hour, int, int, int, int day, int year, int [] )() 函數(shù)根據(jù)給定的參數(shù)返回Unix時(shí)間戳。參數(shù)可以從右到左省略,任何省略的參數(shù)都會(huì)被設(shè)置為本地日期和時(shí)間的當(dāng)前值(即不設(shè)置參數(shù),()函數(shù)獲取本地當(dāng)前日期和時(shí)間)。 () 函數(shù)參數(shù)說明如表12-2所示。表12-2 () 函數(shù)參數(shù)說明: 有效時(shí)間戳范圍為格林威治標(biāo)準(zhǔn)時(shí)間1901年12月13日20:45:54至2038年1月19日03:14:07。(該范圍對(duì)應(yīng)最小值和大值32 位有符號(hào)整數(shù))。在系統(tǒng)中,該范圍限定為1970年1月1日至2038年1月19日。

12.2.1 獲取任意日期和時(shí)間的時(shí)間戳。參數(shù)說明小時(shí) (一分鐘內(nèi)) Day Days Year ,可以是兩位或四位數(shù)字,0-69對(duì)應(yīng)2000-2069,70-100對(duì)應(yīng)1970-2000。該參數(shù)在夏令時(shí)可以設(shè)置為1,否則設(shè)置為0;如果不確定是否為夏令時(shí),則設(shè)置為-1(默認(rèn)值) [例12-1] 應(yīng)用()函數(shù)獲取當(dāng)前時(shí)間的時(shí)間戳,代碼如下。運(yùn)行結(jié)果是:上面解釋的()函數(shù)可以在不設(shè)置任何參數(shù)的情況下獲取當(dāng)前時(shí)間戳,但是pHp還提供了一個(gè)特殊的函數(shù)來獲取當(dāng)前時(shí)間戳php高考倒計(jì)時(shí)代碼,即time()函數(shù)。 time() 函數(shù)獲取當(dāng)前 UNIX 時(shí)間戳,返回值是從 UNIX 紀(jì)元(1970 年 1 月 1 日,格林威治標(biāo)準(zhǔn)時(shí)間 00:00:00) 到當(dāng)前時(shí)間的秒數(shù)。語法為如下: int time (void ) time() 函數(shù)沒有參數(shù),返回值為 UNIX 時(shí)間戳的整數(shù)值 [例 12-2] 使用 time() 函數(shù)獲取當(dāng)前時(shí)間的時(shí)間戳,代碼如下,運(yùn)行結(jié)果為: 12.2. 2 Get () 函數(shù)將任意英文文本的日期時(shí)間描述解析為UNIX時(shí)間戳。

語法如下: int (time [, int now] )() 函數(shù)接受一個(gè)包含英文日期格式的字符串,并嘗試將其解析為 Unix 時(shí)間戳(自 1 1970 00:00:00 GMT 以來的秒數(shù)),它的值是相對(duì)于由 now 參數(shù)給出的時(shí)間。如果未提供此參數(shù),則使用當(dāng)前系統(tǒng)時(shí)間。如果參數(shù) time 的格式是絕對(duì)時(shí)間,則 now 參數(shù)無效;如果參數(shù)time的格式是相對(duì)時(shí)間,那么對(duì)應(yīng)的時(shí)間由參數(shù)now提供。如果解析成功,則返回時(shí)間戳,否則返回。在 pHp 5.1.0 之前,此函數(shù)在失敗時(shí)返回 -1。 【例12-3】使用()函數(shù)將當(dāng)前時(shí)間和指定日期轉(zhuǎn)換為時(shí)間戳,代碼如下。 ? 12.2.3 日期和時(shí)間轉(zhuǎn)換為 UNIX 時(shí)間戳。運(yùn)行結(jié)果如圖 12-2 所示。圖 12-2 將當(dāng)前時(shí)間和指定日期轉(zhuǎn)換為時(shí)間戳 注意:如果給定年份是兩位數(shù)格式,則其值 0-69 表示 2000-2069,70-100 表示 1970-2000。有效時(shí)間戳通常是從 1901 年 12 月 13 日星期五 20:45:54 GMT 到 2038 年 1 月 19 日星期二 03:14:07 GMT(對(duì)應(yīng)于 32 位有符號(hào)整數(shù)的最小值和大值)。

并非所有平臺(tái)都支持負(fù)時(shí)間戳,因此日志范圍限制在不早于 Unix 紀(jì)元。這意味著 1970 年 1 月 1 日之前的日期將不會(huì)在某些版本和其他幾個(gè)操作系統(tǒng)中使用。但是,pHp 5.1.0 和更新版本克服了這個(gè)限制。 12.3 日期和時(shí)間處理 12.3.1 格式化日期和時(shí)間 12.3.2 獲取日期和時(shí)間信息 12.3.3 檢查日期和時(shí)間的有效性date() 函數(shù)格式化本地日期和時(shí)間。語法如下: date( ,[int]) 參數(shù)指定日期和時(shí)間輸出的格式。參數(shù)規(guī)范格式如表12-4所示。該參數(shù)是可選的。指定時(shí)間戳。如果未指定時(shí)間戳,則將使用本地時(shí)間戳 time()。表 12-4 date()函數(shù)中參數(shù)格式選項(xiàng) 12.3.1 格式日期時(shí)間參數(shù)說明 a 小寫上午和下午值,返回值 am 或 pm A 大寫上午和下午值,返回值 AM或 pM b 標(biāo)準(zhǔn)時(shí)間,返回值 000~999 d 星期幾,前兩位零,返回值 01~31 D 星期幾,文本格式,3 個(gè)字母,返回值 Mon ~ Sun F 月,完整文本,返回值~h 小時(shí),12 小時(shí)格式,無前導(dǎo)零,返回值 1~12 H 小時(shí),24 小時(shí)格式,無前導(dǎo)零,返回值 0~23 i 帶前導(dǎo)零的分鐘數(shù),返回值為 00~59 I 判斷是否為夏令時(shí),若為夏令時(shí)返回值為 1,否則為 0 j 月份中不帶前導(dǎo)零的日期,返回值為 1~31 l(L 的小寫) ) 周數(shù),完整的文本格式,返回值~ L 判斷是否為閏年,如果是閏年則返回值為1,否則為0 m 數(shù)字表示的月份,有前導(dǎo)零,返回值為 01~12 M 3 個(gè)字母縮寫 返回值表示的月份 Jan~Dec n 無前導(dǎo)零的數(shù)字表示的月份,返回值1~12 O 與格林威治標(biāo)準(zhǔn)時(shí)間不同的小時(shí)數(shù),如 +0200 r RFC 822 格式日期,如 Thu, 21 Dec 2000 16:01:07 +0200 s 秒數(shù),前導(dǎo)零,返回值為 00~59 S 月份天數(shù)后的英文后綴,兩個(gè)字符,如 st、nd、rd 或 th。

可以與j一起使用。 t 指定月份中的天數(shù),28~31 T 機(jī)器所在的時(shí)區(qū) U 自 UNIX 紀(jì)元(1 1970 00:00:00 GMT)以來的秒數(shù) w 一周的第一天,表示以數(shù)字表示,返回值為 0~6 W ISO-8601 格式的星期幾,從每周一開始 y 兩位數(shù)年份,返回值如 88 或 08 Y 4 位完整表示 返回值為 1998、2008 z,一年中的天數(shù),返回值是0到366Z偏移的秒數(shù)。UTC以西時(shí)區(qū)的偏移總是負(fù)的,時(shí)間的偏移UTC 以東的區(qū)域始終為正。返回值為-~【例12-4】使用date()函數(shù)設(shè)置不同的值,輸出不同格式的時(shí)間和代碼如下。運(yùn)行結(jié)果如圖12-3所示。圖 12-3 日期函數(shù)以不同格式輸出當(dāng)前時(shí)間。注意:在運(yùn)行本章示例時(shí),部分讀者可能得到的時(shí)間與系統(tǒng)時(shí)間不同。這不是程序的問題。因?yàn)?pHp 語言中的默認(rèn)設(shè)置是標(biāo)準(zhǔn)格林威治標(biāo)準(zhǔn)時(shí)間,而不是北京時(shí)間。如果時(shí)間不匹配,請(qǐng)參考本章12.1部分。 【例12-5】使用date()和time()函數(shù)獲取系統(tǒng)當(dāng)前時(shí)間和時(shí)間戳。具體代碼如下。

其運(yùn)行效果如圖12-4所示。圖12-4 獲取當(dāng)前時(shí)間的時(shí)間戳()函數(shù)獲取日期時(shí)間指定部分的相關(guān)信息。語法如下: (int) 函數(shù)以數(shù)組的形式返回日期和時(shí)間信息。如果沒有時(shí)間戳,則以當(dāng)前時(shí)間為準(zhǔn)。函數(shù)返回的關(guān)聯(lián)數(shù)組元素說明如表12-5所示。表12-5()函數(shù)返回的關(guān)聯(lián)數(shù)組元素說明()函數(shù)更適合獲取當(dāng)前日期是年、月還是星期幾。雖然也可以獲取當(dāng)前日期,但由于獲取的是返回值數(shù)組,所以更適合獲取時(shí)間中的特定值。 12.3.2 獲取日期和時(shí)間信息。鍵名解釋了返回值。返回值為秒。 0 到 59 分鐘,返回值是 0 到 59 小時(shí),返回值是 0 到 23 mday,月份中的天,返回值是 1 到 31 wday 星期幾,返回值是 0(代表) to 6 (代表星期六)mon 月份數(shù)字的返回值為1到12年。返回值為4位數(shù)字表示的完整年份,如2010或2011。完整文本表示返回值是Unix紀(jì)元開始后的0秒,與time()的返回值和date()使用的值類似,系統(tǒng)類似,典型值是from-to [例12-6] pass ()函數(shù)獲取當(dāng)前日期php高考倒計(jì)時(shí)代碼,當(dāng)前日期為年中的日期和月份中的日期,具體代碼如下,運(yùn)行結(jié)果如圖12-5所示。 圖12-5 函數(shù)獲取當(dāng)前時(shí)間信息 Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo * *

分享題目:pHp語言中的時(shí)區(qū)設(shè)置有兩種方法和通過函數(shù)設(shè)置
標(biāo)題URL:http://www.bm7419.com/news28/299778.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、云服務(wù)器軟件開發(fā)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)