自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PHP系列學(xué)習(xí)之日期函數(shù)

開發(fā) 后端
)。在低成本的機(jī)器上運(yùn)行良好。而且php語言有很多非常不錯(cuò)的服務(wù)器套件(如WAMP和MAMP),很方便的安裝在你的機(jī)器上。PHP有非常豐富的庫資源,便于開發(fā)者很容易的處理一些業(yè)務(wù)。

介紹

PHP是一門非常令人驚奇的語言。它足夠強(qiáng)大(***的博客(wordpress)的核心語言),它足夠廣泛(運(yùn)行在***社交網(wǎng)站facebook上),它足夠簡(jiǎn)單(作為初學(xué)者***入門語言)。在低成本的機(jī)器上運(yùn)行良好。而且php語言有很多非常不錯(cuò)的服務(wù)器套件(如WAMP和MAMP),很方便的安裝在你的機(jī)器上。PHP有非常豐富的庫資源,便于開發(fā)者很容易的處理一些業(yè)務(wù)。由于我們?cè)陧?xiàng)目中與日期接觸最多,所以今天就從日期函數(shù)入手學(xué)習(xí)。

舉一個(gè)簡(jiǎn)單的date例子

我將使用echo命令把內(nèi)容輸出到我們的客戶端(瀏覽器)。我將使用下面的代碼做為基礎(chǔ)代碼。

  1. <!DOCTYPE html> 
  2. <html lang="en"> 
  3. <head> 
  4.     <meta charset="utf-8" /> 
  5.     <title>Getting started with dates in php5</title> 
  6. </head> 
  7. <body> 
  8. <?php 
  9. date_default_timezone_set('Asia/Shanghai');  
  10. echo "Today is ",date('l');  
  11. ?> 
  12. </body> 
  13. </html> 

你將在你的瀏覽器里看到如下的內(nèi)容。

Today is Friday 

這個(gè)函數(shù)輸出星期幾的文本格式。date函數(shù)至少需要一個(gè)字符參數(shù)(這個(gè)參數(shù)告訴我們?cè)鯓痈袷交?dāng)前日期)。

嘗試不同的格式

如果你看了php手冊(cè)中PHP date function,那么你將發(fā)現(xiàn)有很多格式化日期的方式。

  1. <?php echo "Today is ",date('Y-m-d'); ?> 

將得到:Today is 2012-08-17

有一些日期是很普遍地被使用,所以PHP提供了一些常量供你使用。舉例,你可以使用Cookie獲取到客戶端日期。

  1. <?php echo "Today is ",date(DATE_COOKIE); ?> 

你將得到如下面的內(nèi)容:Today is Friday, 17-Aug-12 11:34:38 CST

注意當(dāng)使用常量的時(shí)候不要使用引號(hào)。

現(xiàn)在是什么時(shí)候?

如果你想要輸出當(dāng)前時(shí)間,你能使用date(不同格式化字符參數(shù))。

  1. <?php echo "The time is ",date('g:i:sa'); ?> 

你將得到:The time is 11:39:59am

本地化你的時(shí)區(qū)

如果你發(fā)現(xiàn)以上的代碼沒有給出正確的時(shí)間,很有可能是因?yàn)槟愕姆?wù)器設(shè)置了與你本地不同的時(shí)區(qū)。你需要在服務(wù)器上指定時(shí)區(qū),那么你用下面的代碼:

  1. <?php date_default_timezone_set('Asia/Shanghai'); ?> 

這個(gè)將設(shè)置中國上海時(shí)區(qū)。這是php5的函數(shù)(注意舊版本的php),有很多供你選擇時(shí)區(qū)。如果你想***生效,你可以修改你的php.ini文件。

獲取其他時(shí)間

你經(jīng)常需要其他時(shí)間,而不是現(xiàn)在的時(shí)間。當(dāng)你用date()函數(shù)創(chuàng)建時(shí)間的時(shí)候,系統(tǒng)會(huì)使用Unix系統(tǒng)時(shí)間。這個(gè)時(shí)間表示從1970年1月1日 00:00:00 GMT(Unix 紀(jì)元時(shí)間),到現(xiàn)在的秒數(shù)。

為了詳細(xì)說明怎樣獲取指定時(shí)間的日期,你可以提供秒數(shù)做為date(0函數(shù)的第二個(gè)參數(shù)。

  1. <?php echo "Today is ",date('Y-m-d', 1309133434); ?> 

結(jié)果是:Today is 2011-06-27

這個(gè)看起來沒什么用途,但它意味著你能用date()函數(shù)做計(jì)算。這之前,你需要簡(jiǎn)單的創(chuàng)建一個(gè)時(shí)間戳。

創(chuàng)建時(shí)間戳

有很多創(chuàng)建時(shí)間戳的方式。我們能夠使用mktime()函數(shù)得到我們需要的時(shí)間戳。

  1. <?php   
  2.     $mytime=mktime(9, 23, 33, 6, 26, 2011);  
  3.     echo "Today is ",date('Y-m-d g:i:sa'$mytime);  
  4. ?> 

得到的結(jié)果是:Today is 2011-06-26 9:23:33am

mktime()函數(shù)需要你依次傳遞小時(shí),分鐘,秒,月,日,年。這是獲取時(shí)間戳的好的方式,但是有更酷的方式。

通過字符獲取時(shí)間戳

你可以使用strtotime()函數(shù)獲取時(shí)間戳,php把可讀的字符轉(zhuǎn)換成Unix時(shí)間戳。PHP在把字符轉(zhuǎn)換成時(shí)間戳方面是相當(dāng)靈活的,因此你可以插入各種各樣的值來獲取你想要的時(shí)間戳。

這是一個(gè)簡(jiǎn)單例子:

  1. <?php   
  2.     $mytime=strtotime("7:50pm June 26 2011");  
  3.     echo "Today is ",date('Y-m-d g:i:sa'$mytime);  
  4. ?> 

輸出:Today is 2011-06-26 7:50:00pm

PHP在解釋字符方面是相當(dāng)靈巧的,但不是***的,因此,在你插入之前一定要測(cè)試你輸入的字符。使用"english-like instructions"轉(zhuǎn)化成需要的時(shí)間戳,這是一個(gè)非常不錯(cuò)的方式。你可以像下面這樣做:

  1. $nextfriday=strtotime("next Friday"); //下周五  
  2. $nextmonth=strtotime("+1 Month"); //從今天開始計(jì)算一個(gè)月以后的時(shí)間  
  3. $lastchristmas=strtotime("-1 year dec 25"); //去年圣誕節(jié) 

獲取日期范圍

strtotime返回的值被轉(zhuǎn)換為數(shù)字,我們能夠用這些數(shù)字做基礎(chǔ)運(yùn)算,我們可以用這些數(shù)字做很多非常有意思的事情。比如,你每周二需要教一門功課,為期16周,你想得到你教科時(shí)間。你能夠做下面的事情。

  1. <?php   
  2. $startdate = strtotime('next Tuesday');  
  3. $enddate = strtotime('+16 weeks'$startdate);  
  4. $currentdate = $startdate;  
  5. echo '<ol>';  
  6. while($currentdate < $enddate):  
  7.     echo "\t<li>"date('M d'$currentdate);  
  8.     $currentdate = strtotime('+1 week'$currentdate);  
  9. endwhile;  
  10. echo '</ol>';  
  11. ?> 

你將會(huì)得到如下的結(jié)果:

  1. Aug 21  
  2. Aug 28  
  3. Sep 04  
  4. Sep 11  
  5. Sep 18  
  6. Sep 25  
  7. Oct 02  
  8. Oct 09  
  9. Oct 16  
  10. Oct 23  
  11. Oct 30  
  12. Nov 06  
  13. Nov 13  
  14. Nov 20  
  15. Nov 27  
  16. Dec 04 

注意一下這行:$currentdate = strtotime("+1 week", $currentdate)。在這行,你會(huì)發(fā)現(xiàn)你需要指定一個(gè)時(shí)間戳做為第二個(gè)參數(shù),strtotime將使用這個(gè)參數(shù)代替默認(rèn)時(shí)間戳(今天),并進(jìn)行運(yùn)算。

到某一個(gè)日期的天數(shù)

使用計(jì)算器的時(shí)候,我們會(huì)試圖去計(jì)算到某一天的天數(shù)。你很容易計(jì)算11月份第四個(gè)星期四的時(shí)間戳。

  1. $someday = strtotime("3 weeks thursday November 1");  
  2. $daysUtilDate = ceil(($someday - time())/60/60/24);  
  3. echo "There are "$daysUtilDate" until Thanksgiving"

首先,我們開始計(jì)算感恩節(jié)日期(11月1號(hào)之后的***個(gè)星期四之后的第3個(gè)星期四),然后我們通過簡(jiǎn)單的算術(shù),計(jì)算出感恩節(jié)到當(dāng)前時(shí)間之間的天數(shù)。當(dāng)我們進(jìn)行比較運(yùn)算的時(shí)候,我們可以使用time(),因?yàn)樗祷?,到?dāng)前時(shí)間的紀(jì)元秒數(shù)。

情有獨(dú)鐘

如果你開始著手學(xué)習(xí)php,學(xué)習(xí)日期是學(xué)習(xí)這種語言***的方式,因?yàn)槿掌谟泻芏喾浅S幸馑嫉臇|西隨你處理。在手冊(cè)中發(fā)掘日期和時(shí)間相關(guān)的函數(shù),請(qǐng)分享你的收獲給大家。

原文鏈接:http://www.cnblogs.com/baochuan/archive/2012/08/17/2643716.html

【編輯推薦】

  1. 我們什么時(shí)候應(yīng)該使用異常?
  2. PHP5.5 將會(huì)帶來哪些新特征
  3. PHP 5.4.5和5.3.15發(fā)布,安全修復(fù)版本
  4. 漫談社區(qū)PHP業(yè)務(wù)開發(fā) 提高效率縮短開發(fā)周期
  5. 看PHP如何生成的條形碼
責(zé)任編輯:張偉 來源: 川山甲的博客
相關(guān)推薦

2012-08-22 10:18:03

PHP

2022-12-05 13:59:52

Zabbix 6開源

2022-12-20 08:43:10

2022-12-12 08:22:51

2022-12-27 09:33:28

2022-12-08 09:32:56

2010-08-05 09:41:03

DB2常用函數(shù)

2009-11-17 11:14:14

PHP日期函數(shù)

2022-12-06 08:44:20

2009-12-11 17:45:09

PHP Math函數(shù)

2010-08-10 17:39:52

DB2 基礎(chǔ)

2009-03-10 10:45:51

PHP5函數(shù)實(shí)例

2009-11-17 10:55:02

PHP字符串處理函數(shù)

2009-11-16 15:40:58

PHP數(shù)組函數(shù)

2010-11-25 11:01:33

MySQL日期函數(shù)

2009-09-16 09:58:53

PHP正則表達(dá)式函數(shù)

2010-10-25 15:12:42

Oracle日期函數(shù)

2009-12-11 09:22:28

2010-09-14 16:31:24

sqlserver日期

2009-11-17 09:32:32

PHP數(shù)值函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)