·您现在的位置: 江北区云翼计算机软件开发服务部 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> PHP常用功能块_异常与时间戳 — php(33)

PHP常用功能块_异常与时间戳 — php(33)

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
php常用功能块_异常与时间戳 — php(33)

异常(接上篇)

一个简单异常处理实例

<?phptry {$error= 'Always throw this error';throw new Exception($error);//创建一个异常对象,通过throw语句抛出echo 'Neverexecuted';//从这里开始,try代码块内的代码将不会再被执行} catch (Exception $e) {echo 'Caught exception:', $e->getMessage(), "\n";//输出捕获的异常消息}echo 'Hello World'; //程序没有崩溃继续向下执行?>

系统自带异常处理

<?phpclassException{PRotected$message='Unknownexception';//异常信息protected$code=0;//用户自定义异常代码protected$file;//发生异常的文件名protected$line;//发生异常的代码行号function__construct($message=null,$code=0);finalfunctiongetMessage();//返回异常信息finalfunctiongetCode();//返回异常代码finalfunctiongetFile();//返回发生异常的文件名finalfunctiongetLine();//返回发生异常的代码行号finalfunctiongetTrace();//backtrace()数组finalfunctiongetTraceAsString(); //已格成化成字符串的getTrace()信息/*可重载的方法*/function__toString();//可输出的字符串}?>

<?php/* 自定义的一个异常处理类,但必须是扩展内异常处理类的子类*/class MyExceptionextends Exception{//重定义构造器使第一个参数message 变为必须被指定的属性public function __construct($message, $code=0){//可以在这里定义一些自己的代码//建议同时调用parent::construct()来检查所有的变量是否已被赋值parent::__construct($message, $code);}public function __toString() {//重写父类方法,自定义字符串输出的样式return __CLASS__.":[".$this->code."]:".$this->message."<br>";}public function customFunction() {//为这个异常自定义一个处理方法echo "按自定义的方法处理出现的这个类型的异常<br>";}}?>

自定义异常

<?phptry { //使用自定义的异常类捕获一个异常,并处理异常$error = '允许抛出这个错误';throw new MyException($error);//创建一个自定义的异常类对象,通过throw语句抛出echo 'Never executed'; //从这里开始,try代码块内的代码将不会再被执行} catch (MyException$e) { //捕获自定义的异常对象echo '捕获异常: '.$e; //输出捕获的异常消息$e->customFunction(); //通过自定义的异常对象中的方法处理异常}echo '你好呀'; //程序没有崩溃继续向下执行?>

捕获多个异常

在try代码之后,必须至少给出一个catch代码块,也可以将多个catch代码块与一个try代码块关联使用。那么使用多个catch就可以捕获不同的类所产生的异常。注意顺序。

2 时间戳

2.1 UNIX时间戳

Unix 时间戳:􀂾自从Unix 纪元(格林威治时间1970 年1 月1 日00:00:00)到当前时间的秒数.􀂙相关函数:􀂙使用time( )函数返回一个当前系统的时间戳􀂙mktime( )--取得一个日期的Unix 时间戳􀂾格式:intmktime(时[,分[,秒[,月[,日[,年[,is_dst区]]]]]]);􀂾注意:is_dst参数表示是否

2.2 在PHP中获取日期和时间

getdate--取得日期/时间信息􀂾格式:array getdate( [inttimestamp] )􀂾返回一个根据timestamp得出的包含有日期信息的结合数组。如果没有给出时间戳则认为是当前本地时间。数组中的单元如下:

2.3 日期和时间的格式化输出

date--格式化一个本地时间/日期􀂙格式:string date ( string format [, inttimestamp] )􀂾返回将整数timestamp按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp是可选的,默认值为time()(当前时间戳)。􀂾例如:echo date(“Y年m月d日H:i:s”);//2010年10月28日14:22:28Y:四位数年m:月01-12 n:月1-12d:天01-31 j:天1-31H:时24时制h:小时12制i:分钟00-59 s:秒00-59 w:星期几0-6A:上午AM或下午PM a:上午am或下午pm。

2.4 修改PHP的默认时区

修改PHP的默认时区有两种方式:􀂙1、修php.ini配置文件:􀂾date.timezone= Etc/GMT+8􀂙2、使用date_default_timezone_set函数:--设定用于一个脚本中所有日期时间函数的默认时区。􀂾如:date_default_timezone_set(“PRC”);//中国时区。􀂾date_default_timezone_get();//获取当前时区

2.5 使用微秒计算PHP脚本执行时间

microtime--返回当前Unix 时间戳和微秒数􀂾格式:mixed microtime( [boolget_as_float] )􀂙microtime() 当前Unix 时间戳以及微秒数。本函数仅在支持gettimeofday() 系统调用的操作系统下可用。􀂙如果调用时不带可选参数,本函数以"msecsec" 的格式返回一个字符串,其中sec 是自Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec是微秒部分。字符串的两部分都是以秒为单位返回的。􀂙如果给出了get_as_float参数并且其值等价于TRUE,microtime() 将返回一个浮点数。