错误处理和时间函数
一、错误处理
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() 获取当前时间的日期详细信息 它是以数组的形式返回