時間戳:表示從1970年1月1日00:00:00到當前的秒數(shù)之和
php提供time()來取得服務(wù)器當前時間的時間戳
php提供date()函數(shù)來取得當前的日期 date(時間戳的格式,規(guī)定時間戳[默認是當前的日期和時間譬猫,可選]) ?返回值:函數(shù)日期和時間
$time = time();
echo date("Y-m-d");
strtotime:獲取某個日期的時間戳挖垛,或獲取某個時間的時間戳
echo strtotime('2016-01-31');? //1454169600 這個數(shù)字表示從1970年1月1日 00:00:00到2016年01月31號相隔1454169600秒
echo strtotime('2016-01-31 00:00:01');
strtotime(要解析的時間字符串,計算返回值的時間戳[默認是當前的時間,可選]); 返回值:成功則返回時間戳爱沟,否則返回false
strtotime("now") ?//相當于現(xiàn)在的日期和時間,并把這個日期轉(zhuǎn)化為unix的時間戳
strtotime("+1 seconds") // 現(xiàn)在得日期和時間加上1秒
strtotime("+1 day"); //現(xiàn)在得日期和時間加上1天
strtotime("+1 week"); // 想在的日期加上1周
strtotime("+1 week 3 days 7 hours 5 seconds"); //現(xiàn)在得日期和時間上加上1周3天7小時5秒
格式化格林威治標準時間(因為格林威治時間是現(xiàn)在中國時區(qū)的時間減去8個小時蝶怔,相對于現(xiàn)在時間要少8個小時)
echo date('Y-m-d H:i:s',time()); ?
echo gmdate('Y-m-d H:i:s',time());?
異常處理
從php5開始隙咸,php支持異常處理充包,異常處理是面向?qū)ο笠粋€重要特性家浇,php代碼中的異常通過throw拋出钢悲,異常拋出后,后面的代碼將不會再被執(zhí)行
異常拋出被用于在遇到未知錯誤还棱,或者不符合預(yù)先設(shè)定的條件時芦昔,通知客戶程序,以便進行其他相關(guān)處理珠十,不至于使程序直接報錯中斷
當代碼中使用try catch的時候凭豪,拋出的異常會在catch中捕獲,否則會直接中斷
try{
? ? //可能出現(xiàn)錯誤或異常的代碼
? ?// catch表示捕獲嫂伞,Exception是php已定義好的異常類
}catch(Exception e){
? ? ?// 對異常處理的方法:1拯钻、自己處理 ? 2粪般、不處理污桦,將其再次拋出
}
Try - 使用異常的函數(shù)應(yīng)該位于"try"代碼塊內(nèi),如果沒有觸發(fā)異常凡橱,則代碼將照常繼續(xù)執(zhí)行。但是如果異常被觸發(fā)顾稀,會拋出一個異常
Throw - 這里規(guī)定如何觸發(fā)異常坝撑。注意:每一個thorw必須對應(yīng)至少一個catch,當然可以對應(yīng)多個catch
function checkNum($number){
? ? ? if($number > 1){throw new Exception("異常提示-數(shù)字必須小于等于1");}
? ? ? ?return true;
}
try{
? ? checkNum(2);
? ?echo "如果能看到這個提示诡宗,說明你的數(shù)字小于等于1";
}catch(Exception $e){echo '捕獲異常:'.$e->getMessage();}?
$e->getMessage() 輸出來自該異常的錯誤信息
Exception屬性和方法
message ?異常消息內(nèi)容
code 異常代碼
file 拋出異常的文件名
line 拋出異常在該文件的行數(shù)
getTrace 獲取異常追蹤信息
getTraceAsString 獲取異常追蹤信息的字符串
getMessage 獲取出錯信息
如果必要的話击儡,可以通過繼承Exception類來建立自定義的異常處理類
classMyExceptionextendsException{
functiongetInfo(){
return"自定義錯誤信息";
}
}
try{
//使用異常函數(shù)應(yīng)該位于"try"代碼塊內(nèi)蝠引,如果沒有觸發(fā)異常螃概,則代碼照常繼續(xù)執(zhí)行,但是如果異常被觸發(fā)吊洼,會拋出一個異常
//這里規(guī)定如何觸發(fā)異常,注意:每一個"throw"必須對應(yīng)至少一個"catch"递沪,當然可以對應(yīng)多個"catch"
throw newMyException('error');
//catch代碼會捕獲異常综液,并創(chuàng)建一個包含異常信息的對象
}catch(MyException$e){
echo$e->getInfo();//獲取自定義的異常信息
echo$e->getMessage();// 獲取繼承自基類的getMessage的值
}
通常需要將報錯的文件名、行號檩奠、錯誤信息、異常追蹤信息等記錄到日志中
try{
? ? ? trrow new Exception('wrong');
}catch(Exception $ex){
$msg='Error:'.$ex->getMessage()."\n";
$msg.=$ex->getTraceAsString()."\n";
$msg.='異常行號:'.$ex->getLine()."\n";
$msg.='所在文件:'.$ex->getFile()."\n";
//將異常信息記錄到日志中
file_put_contents('error.log',$msg);
}