错误处理和时间函数

一、错误处理

a)错误报告级别(重点)

1.语法错误: error会给一个致命错误 终止程序继续执行

2.运行时错误: notice warning 运行代码的时候错了 有错误提示,但是他们不会影响程序运行,但是结果不是我们想要的!

3.逻辑错误: 逻辑出现了错误 最大的难点 就是不报错 不好排除

4.notice: 本身不是一个错误 只是一个提示 这个错误可以忽略不计

5.warning: 警告只要产生warning错误 程序的执行结果就不是我们想要的结果,这个错误必须要解决掉而且他不会终止程序继续进行

6.error:致命错误 必须排除

b)调整错误报错级别:(重点)

E_ERROR 1 致命的运行时错误(阻止代码执行)

E_WARNING 2 运行时警告

E_NOTICE 8 运行时注意

E_ALL所有的错误哦 警告的注意信息

c)自定义错误处理

1.屏蔽错误

1.系统函数(重点重点重点)(推荐使用下面内容)

ini_set() 设置php.ini中的配置项

第一个参数 要设置php.ini的配置项

第二个参数 要设置php.ini的配置项的值

ini_get() 获取php.ini中的配置项的值

一个参数 要获取php.ini中配置项

返回值 1 或者0 如果是display_errors配置项1代表不屏蔽错误 0 代表屏蔽错误

error_reporting() 设置错误报告级别

参数 E_ALL E_ERROR ^ E_WARNING ^ E_NOTICE ^

2.手动屏蔽错误

如果你要使用手动屏蔽错误 一定修改之后进行重启服务

修改php.ini 找到display_errors 将里面的值改为off就是屏蔽错误

; Default Value: On

; Development Value: On

; Production Value: Off

; http://php.net/display-errors

display_errors = off

或者

修改php.ini 找到error_reporting 将值修改为E_ALL &~E_NOTICE &~E_WARNING

; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

; Development Value: E_ALL

; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT

; http://php.net/error-reporting

error_reporting = E_ALL

2.修改错误位置

error_log() (重点重点重点)

三个参数

第一个参数 错误信息

第二个参数 3 以字符串形式存储

第三个参数 保存的文件

切记各位如果你修改php.ini 一定要重新启动你的wamp

自定义错误日志(重点)

error_log() 写入wamp下面的php日志中

; Log errors to specified file. PHP's default behavior is to leave this value

; empty.

; http://php.net/error-log

; Example:

//开启下面内容写入到php日志中

error_log ="c:/wamp/logs/php_error.log"

; Log errors to syslog (Event Log on Windows).

//开启下面内容写入到windows系统日志

;error_log = syslog

d)以下几种情况可以考虑自定义错误处理

1.可以记下错误信息,及时发现一些生产环境出现的问题

2.可以屏蔽错误

3.可以控制错误的输出

4.可以作为调试工具

e)trigger_error() 返回notice错误样式 (重点)

参数1 错误信息

时间函数

一、现实中我们表示时间

2017年10月31日

2017/10/31

2017.10.31

2017-10-31

2017年10月31日 上午8点44分13秒

外国人

10/31/2017

中国古代:

寅年寅月寅时出生 唐伯虎

世界人民表示时间的方式不一样 存储不方便,计算起来也不方便 不同时间的表示影响团结呀 不利于沟通呀

在计算机中统一时间的方法是使用unix 时间戳

1.什么是时间戳

从1970年1月1日0时0分0秒(格林威治时间)开始到指定时间点的秒数就是时间戳 时间戳属于整型 2147483647

2.php的时间戳是从1970年开始最大表示到2038年1月27日

3.时间模块,以时间函数的学习为主

二、时间函数(重点重点重点重点重点重点)

1.time() 获取当前时间戳

2.date() 格式化当前时间戳

格式化: 转换为能看懂的格式

参数1: 要转换的格式的格式

Y 代表四位数字的年份

m 代表两位数字的月份 有前导零

d 代表天数 有前导零 01-31

H 代表小时 24小时格式 00-23

i 代表分钟 00~59

s 代表秒数 00 ~59

参数2:可选参数 如果没有设置时间戳,表示格式化当前时间戳

如果设置时间戳 表示格式化指定时间戳

3.mktime() 返回一个指定时间的时间戳

参数: 时 分 秒 月 日 年

注意: 参数可以从右向左一次省略,省略的时间会被计算当前时间 他可以自动验证时间

三、修改时区(重点重点重点)

date_default_timezone_set() 函数来设置时区

参数: 修改的时区地址

PRC People's Republic of China ×××

大洲/城市

Asia/ShangHai

Asia/ChongQing

Asia/Hong_Kong

date_default_timezone_get() 函数来获取时区

可以修改php.ini来修改时区

打开php.ini ->查找date.timezone 将里面的值改为 date.timezone=Asia/ShangHai 或者 PRC

修改完成之后重启服务

四、返回当前unix时间戳和微秒数

microtime()

参数 可选参数 如果设置为true 表示返回一个浮点型的时间戳+ 微秒数

默认为false 返回字符串类型 微秒数和时间戳

五、将任何英文文本的日期时间描述解析为unix时间戳

strtotime();

六、date的格式参数

1.a ---- ‘am’或者 ‘pm’

2.A ---- “AM”或者”PM”

3.d ---- 天数 0补全

4.D---- 星期几 三个英文字母

5.F---- 月份 英文全名

6.h---- 12进制 01 -12

7.H-- 24进制 00 -23

8.g-- 12小时进制 1-12

9.G--- 24小时进制 0-23

10.i -- 分钟 00 -59

11.j--- 天数 没有0补全

12.l--- 星期几 英文全名

13.m--- 月份 01-12

14.n--- 月份 1-12

15.M 月份 三个英文

16.s-- 秒 00 -59

17.S-- 自尾加英文序数 二个英文字母 th nd

18.t--- 指定月份天数 28-31

19.U--- 总秒数

20.w-- 数字型星期几 0 星期日 6 星期六

21.Y--- 年 四位数字

22.y--- 年 二位数字

23.z--- 一年中的第几天

七、getdate() 获取当前时间的日期详细信息 它是以数组的形式返回