PHP入門教程之日期與時(shí)間操作技巧總結(jié)(格式化,驗(yàn)證,獲取,轉(zhuǎn)換,計(jì)算等)
本文實(shí)例講述了PHP日期與時(shí)間操作技巧。分享給大家供大家參考,具體如下:
Demo1.php
<?php //驗(yàn)證時(shí)間 //checkdate() 1.月份 2.日 3.年 //checkdate() 判斷這個(gè)日期是否是合法的日期 //不合法的日期,試一試 if(checkdate(7,16,2010)){ echo '這個(gè)日期是合法有效的'; }else{ echo '這個(gè)日期是非法的。'; } ?>
Demo2.php
<?php //date -- 格式化一個(gè)本地時(shí)間/日期 //date(), 徹底研究一下 //date() 可以存放兩個(gè)參數(shù),第一參數(shù)是日期和時(shí)間的格式化,[第二參數(shù)是時(shí)間戳] //Y 表示四位數(shù)的年份, y表示二位數(shù)的年份 //M 表示英文的月份縮寫,m 表示阿拉伯?dāng)?shù)字的月份 //D 表示英文下的星期幾縮寫,d 表示阿拉伯?dāng)?shù)字的日 //第一個(gè)參數(shù)的格式化可以放一些無關(guān)緊要的字符串 //只要無關(guān)緊要的字符串不再 format 的目錄里,就不會(huì)被識(shí)別 //echo date('現(xiàn)在的日期是:Y-m-d'); //現(xiàn)在的日期是:2015-04-20 //時(shí)分秒 = H 表示24小時(shí)制的小時(shí), //明明是 19 ,為什么顯示 11 點(diǎn)呢,東八區(qū),差 8 個(gè)小時(shí) //現(xiàn)在沒有經(jīng)過任何設(shè)置,所以時(shí)間在默認(rèn)時(shí)區(qū)上 //echo date('現(xiàn)在的日期是:Y-m-d H:i:s'); //重點(diǎn)是年月日,時(shí)分秒 echo date('r'); echo date('現(xiàn)在的日期是:Y-m-d H:i:sa'); ?>
Demo3.php
<?php //取得當(dāng)前的時(shí)間,返回一個(gè)數(shù)組 //"sec" - 自 Unix 紀(jì)元起的秒數(shù) //"usec" - 微秒數(shù) //"minuteswest" - 格林威治向西的分鐘數(shù) //"dsttime" - 夏令時(shí)修正的類型 //print_r(gettimeofday()); //第一數(shù)組的元素就是時(shí)間戳 //gettimeofday() 就是取得的當(dāng)前時(shí)間的時(shí)間戳 //$a = gettimeofday(); //sec 取得當(dāng)前時(shí)間的時(shí)間戳 //轉(zhuǎn)換成人可以看得懂的時(shí)間 //第二個(gè)參數(shù),對(duì)于本例來講,放與不放,是一樣的。 //echo date('Y-m-d H:i:s',$a['sec']); print_r(gettimeofday(0)); echo gettimeofday(1); ?>
Demo4.php
<?php //將時(shí)間戳轉(zhuǎn)換成人可以看的懂的時(shí)間 //date() 函數(shù)的第二個(gè)參數(shù)就是時(shí)間戳 //如果第二個(gè)參數(shù)省略了,那么就返回當(dāng)前時(shí)間 //如果第二個(gè)參數(shù)沒有省略,那么就返回那個(gè)時(shí)間戳的時(shí)間 echo date('Y-m-d H:i:s',24554457865); ?>
Demo5.php
<?php //getdate() 也可以轉(zhuǎn)換時(shí)間戳 //print_r(getdate()); //Array ( [seconds] => 26 [minutes] => 34 [hours] => 10 [mday] => 20 [wday] => 1 [mon] => 4 //[year] => 2015 [yday] => 109 [weekday] => Monday [month] => April [0] => 1429526066 ) $t = getdate(); echo $t['year']; //傳遞一個(gè)時(shí)間戳 print_r(getdate(1029526066)); ?>
Demo6.php
<?php //直接獲取當(dāng)前時(shí)間戳 //echo time();//1429526328 //這個(gè) time() 可以調(diào)整時(shí)間 //大家可以發(fā)現(xiàn) time() 很有用處,可以過去現(xiàn)在和將來 echo date('Y-m-d H:i:s',time()+60*60*8); ?>
Demo7.php
<?php //獲取特定指定時(shí)間的時(shí)間戳 //這是當(dāng)前的時(shí)間戳 //echo time(); //我要取得 2008-08-08 08:08:08 $beijing2008 = mktime(8,8,8,8,8,2008); echo date('Y-m-d H:i:s',$beijing2008); ?>
Demo8.php
<?php //使用時(shí)間戳計(jì)算時(shí)間差 $now = time();//當(dāng)前的時(shí)間戳 $wnow = mktime(0,0,0,8,16,2016); //兩個(gè)時(shí)間戳相減可以得到差秒 echo round(($wnow - $now)/60/60,2).'相差這幾個(gè)小時(shí)'; ?>
Demo9.php
<?php //將人可讀的時(shí)間,字符串形式,轉(zhuǎn)換成時(shí)間戳 $a = strtotime('2010-7-16 15:15:15')-strtotime('2010-7-16 15:14:15'); if($a >= 60){ echo '請(qǐng)這位先生休息一會(huì)。'; }else{ echo $a; } ?>
Demo10.php
<?php //獲取當(dāng)前文件的修改時(shí)間戳 echo date('Y-m-d H:i:s',getlastmod()); ?>
Demo11.php
<?php //配置系統(tǒng)環(huán)境變量 echo date('Y-m-d H:i:s'); echo '<br/>'; //我開始設(shè)置時(shí)區(qū) putenv('Tz=Asia/Shanghai'); echo date('Y-m-d H:i:s'); ?>
Demo12.php
<?php //putenv('Tz=Asia/Shanghai'); //獲取當(dāng)前時(shí)區(qū) echo date_default_timezone_get(); echo '<br/>'; //開始配置默認(rèn)時(shí)區(qū) date_default_timezone_set('Asia/Shanghai'); echo date('Y-m-d H:i:s') ; echo '<br/>'; echo date_default_timezone_get(); ?>
Demo13.php
<?php date_default_timezone_set('Asia/Shanghai'); //"tm_sec" - 秒數(shù) //"tm_min" - 分鐘數(shù) //"tm_hour" - 小時(shí) //"tm_mday" - 月份中的第幾日 //"tm_mon" - 年份中的第幾個(gè)月,從 0 開始表示一月 //"tm_year" - 年份,從 1900 開始 //"tm_wday" - 星期中的第幾天 //"tm_yday" - 一年中的第幾天 //"tm_isdst" - 夏令時(shí)當(dāng)前是否生效 print_r(localtime(time(),true)); //Array ( [tm_sec] => 37 [tm_min] => 15 [tm_hour] => 19 //[tm_mday] => 20 [tm_mon] => 3 [tm_year] => 115 //[tm_wday] => 1 [tm_yday] => 109 [tm_isdst] => 0 ) ?>
Demo14.php
<?php //返回時(shí)間戳和微秒數(shù) //怎么計(jì)算頁面運(yùn)行加載時(shí)間 //頁面打開的時(shí)候獲取一個(gè)時(shí)間 //頁面結(jié)束的時(shí)候獲取一個(gè)時(shí)間 //用結(jié)束的時(shí)間減去打開的時(shí)間,那么就是運(yùn)行時(shí)間 // list($a,$b)=explode(' ',microtime()); // echo $b; function fn(){ list($a,$b)=explode(' ',microtime()); return $a+$b; //返回出精確的秒數(shù) } //在頁面打開的時(shí)候,獲取一個(gè)時(shí)間 $start_time = fn(); for($i=0;$i<10000000;$i++){ // } //頁面結(jié)束的時(shí)候,獲取一個(gè)時(shí)間 $end_time = fn(); echo round(($end_time - $start_time),4); ?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php日期與時(shí)間用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP中new static()與new self()的區(qū)別異同分析
這篇文章主要介紹了PHP中new static()與new self()的區(qū)別異同分析,是很實(shí)用的技巧,需要的朋友可以參考下2014-08-08PHP中使用DOMDocument來處理HTML、XML文檔的示例
這篇文章主要介紹了PHP中使用DOMDocument來處理HTML、XML文檔的示例,幫助大家更好的理解和學(xué)習(xí)使用php語言,感興趣的朋友可以了解下2021-04-04PHP中使用sleep造成mysql讀取失敗的案例和解決方法
這篇文章主要介紹了PHP中使用sleep造成mysql讀取失敗的案例和解決方法,如果遇到這個(gè)問題,可能會(huì)耗費(fèi)你N久的時(shí)間,希望你能快速的搜索到這篇文章吧,需要的朋友可以參考下2014-08-08