您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)PHP中如何使用日期函數(shù),小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
舉一個簡單的date例子
我將使用echo命令把內(nèi)容輸出到我們的客戶端(瀏覽器)。我將使用下面的代碼做為基礎代碼。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Getting started with dates in php5</title> </head> <body> <?php date_default_timezone_set('Asia/Shanghai'); echo "Today is ",date('l'); ?> </body> </html>
你將在你的瀏覽器里看到如下的內(nèi)容。
Today is Friday
這個函數(shù)輸出星期幾的文本格式。date函數(shù)至少需要一個字符參數(shù)(這個參數(shù)告訴我們怎樣格式化當前日期)。
嘗試不同的格式
如果你看了php手冊中PHP date function,那么你將發(fā)現(xiàn)有很多格式化日期的方式。
<?php echo "Today is ",date('Y-m-d'); ?>
將得到:Today is 2012-08-17
有一些日期是很普遍地被使用,所以PHP提供了一些常量供你使用。舉例,你可以使用Cookie獲取到客戶端日期。
<?php echo "Today is ",date(DATE_COOKIE); ?>
你將得到如下面的內(nèi)容:Today is Friday, 17-Aug-12 11:34:38 CST
注意當使用常量的時候不要使用引號。
現(xiàn)在是什么時候?
如果你想要輸出當前時間,你能使用date(不同格式化字符參數(shù))。
<?php echo "The time is ",date('g:i:sa'); ?>
你將得到:The time is 11:39:59am
本地化你的時區(qū)
如果你發(fā)現(xiàn)以上的代碼沒有給出正確的時間,很有可能是因為你的服務器設置了與你本地不同的時區(qū)。你需要在服務器上指定時區(qū),那么你用下面的代碼:
<?php date_default_timezone_set('Asia/Shanghai'); ?>
這個將設置中國上海時區(qū)。這是php5的函數(shù)(注意舊版本的php),有很多供你選擇時區(qū)。如果你想***生效,你可以修改你的php.ini文件。
獲取其他時間
你經(jīng)常需要其他時間,而不是現(xiàn)在的時間。當你用date()函數(shù)創(chuàng)建時間的時候,系統(tǒng)會使用Unix系統(tǒng)時間。這個時間表示從1970年1月1日 00:00:00 GMT(Unix 紀元時間),到現(xiàn)在的秒數(shù)。
為了詳細說明怎樣獲取指定時間的日期,你可以提供秒數(shù)做為date(0函數(shù)的第二個參數(shù)。
<?php echo "Today is ",date('Y-m-d', 1309133434); ?>
結(jié)果是:Today is 2011-06-27
這個看起來沒什么用途,但它意味著你能用date()函數(shù)做計算。這之前,你需要簡單的創(chuàng)建一個時間戳。
創(chuàng)建時間戳
有很多創(chuàng)建時間戳的方式。我們能夠使用mktime()函數(shù)得到我們需要的時間戳。
<?php $mytime=mktime(9, 23, 33, 6, 26, 2011); echo "Today is ",date('Y-m-d g:i:sa', $mytime); ?>
得到的結(jié)果是:Today is 2011-06-26 9:23:33am
mktime()函數(shù)需要你依次傳遞小時,分鐘,秒,月,日,年。這是獲取時間戳的好的方式,但是有更酷的方式。
通過字符獲取時間戳
你可以使用strtotime()函數(shù)獲取時間戳,php把可讀的字符轉(zhuǎn)換成Unix時間戳。PHP在把字符轉(zhuǎn)換成時間戳方面是相當靈活的,因此你可以插入各種各樣的值來獲取你想要的時間戳。
這是一個簡單例子:
<?php $mytime=strtotime("7:50pm June 26 2011"); echo "Today is ",date('Y-m-d g:i:sa', $mytime); ?>
輸出:Today is 2011-06-26 7:50:00pm
PHP在解釋字符方面是相當靈巧的,但不是***的,因此,在你插入之前一定要測試你輸入的字符。使用"english-like instructions"轉(zhuǎn)化成需要的時間戳,這是一個非常不錯的方式。你可以像下面這樣做:
$nextfriday=strtotime("next Friday"); //下周五 $nextmonth=strtotime("+1 Month"); //從今天開始計算一個月以后的時間 $lastchristmas=strtotime("-1 year dec 25"); //去年圣誕節(jié)
獲取日期范圍
strtotime返回的值被轉(zhuǎn)換為數(shù)字,我們能夠用這些數(shù)字做基礎運算,我們可以用這些數(shù)字做很多非常有意思的事情。比如,你每周二需要教一門功課,為期16周,你想得到你教科時間。你能夠做下面的事情。
<?php $startdate = strtotime('next Tuesday'); $enddate = strtotime('+16 weeks', $startdate); $currentdate = $startdate; echo '<ol>'; while($currentdate < $enddate): echo "\t<li>", date('M d', $currentdate); $currentdate = strtotime('+1 week', $currentdate); endwhile; echo '</ol>'; ?>
你將會得到如下的結(jié)果:
Aug 21 Aug 28 Sep 04 Sep 11 Sep 18 Sep 25 Oct 02 Oct 09 Oct 16 Oct 23 Oct 30 Nov 06 Nov 13 Nov 20 Nov 27 Dec 04
注意一下這行:$currentdate = strtotime("+1 week", $currentdate)。在這行,你會發(fā)現(xiàn)你需要指定一個時間戳做為第二個參數(shù),strtotime將使用這個參數(shù)代替默認時間戳(今天),并進行運算。
到某一個日期的天數(shù)
使用計算器的時候,我們會試圖去計算到某一天的天數(shù)。你很容易計算11月份第四個星期四的時間戳。
$someday = strtotime("3 weeks thursday November 1"); $daysUtilDate = ceil(($someday - time())/60/60/24); echo "There are ", $daysUtilDate, " until Thanksgiving";
首先,我們開始計算感恩節(jié)日期(11月1號之后的***個星期四之后的第3個星期四),然后我們通過簡單的算術(shù),計算出感恩節(jié)到當前時間之間的天數(shù)。當我們進行比較運算的時候,我們可以使用time(),因為它返回,到當前時間的紀元秒數(shù)。
以上就是PHP中如何使用日期函數(shù),小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。