PHP入門(mén)教程之日期與時(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 表示英文的月份縮寫(xiě),m 表示阿拉伯?dāng)?shù)字的月份
//D 表示英文下的星期幾縮寫(xiě),d 表示阿拉伯?dāng)?shù)字的日
//第一個(gè)參數(shù)的格式化可以放一些無(wú)關(guān)緊要的字符串
//只要無(wú)關(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)在沒(méi)有經(jīng)過(guò)任何設(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í)修正的類(lèi)型
//print_r(gettimeofday());
//第一數(shù)組的元素就是時(shí)間戳
//gettimeofday() 就是取得的當(dāng)前時(shí)間的時(shí)間戳
//$a = gettimeofday();
//sec 取得當(dāng)前時(shí)間的時(shí)間戳
//轉(zhuǎn)換成人可以看得懂的時(shí)間
//第二個(gè)參數(shù),對(duì)于本例來(lái)講,放與不放,是一樣的。
//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ù)沒(méi)有省略,那么就返回那個(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() 很有用處,可以過(guò)去現(xiàn)在和將來(lái)
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/>';
//我開(kāi)始設(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/>';
//開(kāi)始配置默認(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 開(kāi)始表示一月
//"tm_year" - 年份,從 1900 開(kāi)始
//"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è)面運(yùn)行加載時(shí)間
//頁(yè)面打開(kāi)的時(shí)候獲取一個(gè)時(shí)間
//頁(yè)面結(jié)束的時(shí)候獲取一個(gè)時(shí)間
//用結(jié)束的時(shí)間減去打開(kāi)的時(shí)間,那么就是運(yùn)行時(shí)間
// list($a,$b)=explode(' ',microtime());
// echo $b;
function fn(){
list($a,$b)=explode(' ',microtime());
return $a+$b; //返回出精確的秒數(shù)
}
//在頁(yè)面打開(kāi)的時(shí)候,獲取一個(gè)時(shí)間
$start_time = fn();
for($i=0;$i<10000000;$i++){
//
}
//頁(yè)面結(jié)束的時(shí)候,獲取一個(gè)時(shí)間
$end_time = fn();
echo round(($end_time - $start_time),4);
?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php日期與時(shí)間用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究
這篇文章主要介紹了php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-02-02
php cookie名使用點(diǎn)號(hào)(句號(hào))會(huì)被轉(zhuǎn)換
php cookie名不能使用點(diǎn)號(hào)(句號(hào)),應(yīng)該說(shuō)可以使用點(diǎn)號(hào)的cookie名,但會(huì)被轉(zhuǎn)換,要知道為什么,祥看本文2014-10-10
php中ob(Output Buffer 輸出緩沖)函數(shù)使用方法
php中ob(Output Buffer 輸出緩沖)函數(shù)使用方法...2007-07-07
淺析PHP中Session可能會(huì)引起并發(fā)問(wèn)題
關(guān)于PHP session并發(fā)問(wèn)題估計(jì)各大程序員都不會(huì)想到這個(gè)問(wèn)題,因?yàn)橐话闱闆r我們不會(huì)使用session來(lái)做并發(fā)操作了,但有時(shí)也有可能用到,今天我們就來(lái)簡(jiǎn)單談?wù)勥@個(gè)略微偏門(mén)的問(wèn)題2015-07-07
PHP屏蔽蜘蛛訪(fǎng)問(wèn)代碼及常用搜索引擎的HTTP_USER_AGENT
屏蔽蜘蛛相信每一位站長(zhǎng)都不希望這樣做吧,因?yàn)橹┲氲脑L(fǎng)問(wèn)就沒(méi)有用戶(hù)的瀏覽,直接會(huì)給我們帶來(lái)一定損失,不過(guò)也有例外,某些網(wǎng)站就不希望被蜘蛛爬行,接下來(lái)為你介紹屏蔽蜘蛛的php代碼2013-03-03
全新Mac配置PHP開(kāi)發(fā)環(huán)境教程
趁著這次加硬盤(pán)的機(jī)會(huì),就準(zhǔn)備徹底重做開(kāi)發(fā)環(huán)境?,F(xiàn)在對(duì)Mac也有了一定的了解,特地記錄一下本次的開(kāi)發(fā)環(huán)境安裝詳情,給自己一個(gè)備忘,希望也可以幫助到剛接觸Mac環(huán)境的同學(xué)們2016-02-02

