收藏 分享(赏)

PHP日期和时间.ppt

上传人:HR专家 文档编号:5995501 上传时间:2019-03-22 格式:PPT 页数:24 大小:12.53MB
下载 相关 举报
PHP日期和时间.ppt_第1页
第1页 / 共24页
PHP日期和时间.ppt_第2页
第2页 / 共24页
PHP日期和时间.ppt_第3页
第3页 / 共24页
PHP日期和时间.ppt_第4页
第4页 / 共24页
PHP日期和时间.ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、日期和时间,高兴伟,目录,一、时区设置(更改时区),在PHP中,日期、时间函数依赖于服务器的地区设置,而PHP默认设置的是标准的格林威治时间(采用0时区),如果没有对PHP的时区进行设置,则使用日期、时间函数获取的将是英国伦敦本地时间(零时区)。GMT UTC(世界协调时) 所以,要获取本地当前的时间,必须更改PHP语言中的时区设置,常用方法有两种:(1)在php.ini配置文件中更改;(2)使用date_default_timezone_set()函数设置。,1、在php.ini文件中设置时区: 定位到date下的;date.timezone=选项,去掉前面的分号(;),并设置它的值为当前所

2、在时区使用的时间值。 东八区(北京所在时区,北京时间)的设置值为PRC、Asia/Shanghai(上海)或Asia/Urumqi(乌鲁木齐)/Asia/Chongqing等,都是东八区的时间。 设置完成后,重新启动Apache服务器。,2、使用date_default_timezone_set()函数设置时区: date_default_timezone_set(string timezone); 设定用于一个脚本中所有日期时间函数的默认时区。 参数timezone为PHP可识别的时区名称,如PRC(中华人民共和国)、Asia/Chongqing(重庆)、Asia/Shanghai(上海)或

3、Asia/Urumqi(乌鲁木齐)这几个时区是等效的,如果时区名称PHP无法识别,则采用UTC时区。 注:如果服务器使用的是零时区,则不能直接对php.ini文件直接进行修改,只能通过该函数进行修改。,二、UNIX时间戳,在UNIX系统中,日期与时间表示为自1970年1月1日0点起到当前时刻的秒数,这种时间称为UNIX时间戳,它以32位二进制表示。1970年1月1日0点称为UNIX世纪元。注意:UNIX时间戳值是一个秒数。 UNIX时间戳提供了一种统一、简洁的时间表示方式,在不同的操作系统中均支持这种时间表示方式。同一时间在UNIX和Windows系统中均以相同的UNIX时间戳表示,所以不需要

4、在不同的系统中进行转换。同时,UNIX时间戳是一个时间差,与时区没有关系(即只要当前时间定了,时间戳就定了,和哪个时区的时间无关,所以该函数对UNIX时间戳没影响),无论当前PHP中使用的是何种时区,其UNIX时间戳是唯一的。【同一个时间点上UNIX时间戳是一样的】,UNIX时间戳是以32位二进制表示的(32位最大值为2147483647),所以,目前UNIX时间戳可表示的最大时间为2038年1月19日3点14分7秒,该时刻时间戳为2147483647,对于该时刻之后的时间,需要扩展表示UNIX时间戳的二进制位数。,将日期、时间转换为UNIX时间戳的函数:,1、获取日期的时间戳:mktime(

5、)、gmmktime()。int mktime(int hour,int minute,int second,int month,int day ,int year,int is_dst) (时分秒月日年的整数)将一个时间转换成UNIX时间戳,参数可以从右向左省略,任何省略的参数都会被设置成本地日期、时间的当前值(不设置值是获取的是本地时区当前日期、时间的时间戳值)。 gmmktime()函数获取的是UNIX时间戳的格林威治标准时间(GMT),除了获取的是格林威治标准时间外,其他的和mktime用法相同。,举例:,获取当前系统时间的UNIX时间戳:,2、获取当前时间戳:time() int t

6、ime(void) 没有参数,返回值为当前系统时间的UNIX时间戳的整数值。time()可以获取当前的UNIX时间戳,返回为从UNIX纪元到当前时间的秒数。echo time();,3、将日期、时间转换为UNIX时间戳: int strtotime(string time,int now) 接受一个包含英语日期格式的字符串并尝试将其解析为UNIX时间戳(自 January 1 1970 00:00:00 GMT起的秒数),其值相对于 now 参数给出的时间,如果没有提供此参数则用系统当前时间(自1970至now止)。,了解:第一个参数可以是我们常见的英文时间格式,比如“2008-8-20”或“

7、10 September 2000”等等。也可以是以参数now为基准的时间描述,比如“+1 day”等等。明白下面例子代表什么意思:,三、时期和时间处理,日期和时间处理函数:,1、将一个时间戳格式化成指定格式的日期时间值。 string date(string format,int timestamp) format指定日期和时间输出的格式。timestamp可选,指定时间戳,没有指定则为本地时区当前时间的时间戳(time()获取的值)。 常用格式:d(月份中的第几天,有前导0的2位数字),D(星期,3个字母),H(小时,24时格式,0-23)、i(分钟,有前导0,00-59),m(数字表示的

8、月份,有前导零,01-12)、 M(3个缩写字母表示的月份,返回值为Jan-Dec) ,s(秒数,有前导0)、y(2位年数),Y(4位年数) 比如:Y-m-d H:i:s 2014-02-11 11:01:51,2、根据时间戳获取日期和时间信息:getdate() array getdate(int timestamp) 返回数组形式的日期、时间信息,如果没有时间戳,则以当前时间为准。 该函数返回的关联数组中的元素的说明(根据该键值可以获取日期时间值):seconds(秒)、minutes(分钟)、hours(小时)、mday(月份中的第几天)、wday(星期中的第几天)、mon(月份数字)、

9、year(4位年份)、yday(一年中第几天)、weekday(星期的完整文本表示)、month(月份的完整文本表示)、0(自从UNIX纪元开始至今的秒数,和time的返回值以及用于date()的值类似),b,3、检验日期和时间的有效性:checkdate() bool checkdate(int month,int day,int year);/月、日、年 参数month的有效值为1-12;参数day的有效值为当月的最大天数(每个月数的天数不同);参数year的有效值为1-32767。如果验证的日期有效,则返回true,否则返回false。 checkdate(2,28,2014);/验证2014年2月28日是否正确。,感谢您的关注 !,作者 -,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报