PHP中幾個常用的時間應用方式
在PHP中默認設(shè)置是標準的格林威治時間(零時區(qū)),所以如果要獲得本地時間必須修改PHP的默認時區(qū)(八時區(qū),除非您是外國的朋友,我想很少吧)。
PHP系統(tǒng)時區(qū)設(shè)置
修改PHP系統(tǒng)時區(qū)的兩種方式:
1、修改php.ini文件中的設(shè)置,找到[date]下的“;date.timezone=”,將該項修改為date.timezone=Asia/Hong_Kong (PRC 中國時間),然后重新啟動Apache服務器。
2、在應用程序中,使用時間日期函數(shù)之前添加“date_default_timezone_set(“Asia/Hong_Kong”)”函數(shù)
修改php.ini文件后獲取本地時間:
php代碼:
- <?php
- echo “現(xiàn)在是北京時間:”.date(“Y-m-d H:i:s”).”<p>”;
- ?>
顯示結(jié)果:
現(xiàn)在是北京時間:2010-11-30 20:50:03 (與本地時間相符)
php.ini修改后的代碼:
- [Date]
- ; Defines the default timezone used by the date functions
- ; http://php.net/date.timezone
- date.timezone = PRC
Zero希望大家按照上面的方法去設(shè)置本地時區(qū),要注意的是修改的php.ini文件必須是當前服務器所加載的php.ini文件。
PHP中比較兩個時間的大小
在日常生活中我們要經(jīng)常比較時間的早晚,對于我們來說判斷時間的大小很簡單。但是時間的比較不只是單純的數(shù)字大小的比較,因此相對來說還是比較復雜。那么在PHP中通過什么方式來比較兩個時間的大小呢?如果認真學習了上篇博文《從34到35,PHP時間戳》中的內(nèi)容,我想這個問題也不會很棘手。
要比較兩個時間的大小,我們需要將時間轉(zhuǎn)化為時間戳格式,然后再進行比較這是最常用的方法。
常用到的函數(shù)是:strtotime()
語法格式:strtotime(time,now)
如果time是絕對時間,則now參數(shù)不起作用。
如果time是相對時間,則相對應的參數(shù)則對應函數(shù)就是now來提供,如果沒有提供now參數(shù),那么相對應的時間就是當前的本地時間。
實例:比較兩個絕對時間的大小
代碼:
- <?php
- $zero1=date(“Y-m-d H:i:s”);
- $zero2=”2010-11-29 21:07:00″;
- echo “zero1的時間為:”.$zero1.”<br>”;
- echo “zero2的時間為:”.$zero2.”<br>”;
- if(strtotime($zero1)<strtotime($zero2)){
- echo “zero1早于zero2″;
- }else{
- echo “zero2早于zero1″;
- }
- ?>
輸出結(jié)果:
zero1的時間為:2010-11-30 21:12:55
zero2的時間為:2010-11-29 21:07:00
zero2早于zero1
注:可以根據(jù)實例發(fā)散思維
計算兩個日期的差值
奧運會倒計時,亞運會倒計時,生日倒計時這些倒計時都可以通過計算兩個日期的差值來實現(xiàn),同樣需要用到strottime()函數(shù)。
實現(xiàn)倒計時需要將兩個時間的差值整數(shù)化,需要用到函數(shù)ceil()
ceil()函數(shù)的作用是求不小于給定實數(shù)的最小整數(shù)
實例:倒計時小程序
實例代碼:
- <?php
- $zero1=strtotime (date(“Y-m-d H:i:s”)); //當前時間
- $zero2=strtotime (“2011-2-03 24:00:00″); //過年時間
- $guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h
- echo “離過年還有<strong>$guonian</strong>天!”;
- ?>
輸出結(jié)果:離過年還有66天!
計算腳本的運行時間
在打開很多網(wǎng)頁時都會有一個腳本的運行時間,百度搜索時也會出現(xiàn)搜索用時這些元素。那么是通過什么來實現(xiàn)的呢?
計算腳本運行時間需要用到microtime()函數(shù),該函數(shù)的作用是返回當前時間戳和微秒數(shù)。返回格式為msec sec的字符串,其中sec是當前的UNIX時間戳,msec 為微秒數(shù)。
語法格式:microtime(void)
運算原理:分別記錄腳本運行前后的時間戳,并計算兩個時間戳的差值
實例:計算上個實例中的腳本運行時間
實例代碼:
- <?php
- function run_time()
- {
- list($msec, $sec) = explode(” “, microtime());
- return ((float)$msec + (float)$sec);
- }
- $start_time=run_time();
- $zero1=strtotime (date(“Y-m-d H:i:s”)); //當前時間
- $zero2=strtotime (“2011-2-03 24:00:00″); //過年時間
- $guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h
- echo “離過年還有<strong>$guonian</strong>天!”;
- $end_time=run_time();
- ?>
- <p>
網(wǎng)頁加載時間:<font color=red><?php echo ($end_time-$start_time);?></font>秒
運行結(jié)果:離過年還有66天! 網(wǎng)頁加載時間:0.00011682510375977秒
explode()函數(shù)和list()函數(shù)將在以后的學習中詳細介紹!
好了到這里Zero的PHP時間與日期學習就告一段落了,接下來將學習關(guān)于PHP核心技術(shù)方面的內(nèi)容。歡迎各位博友持續(xù)關(guān)注!
【編輯推薦】