日期时间的处理
在程序中对日期时间的处理很常见;看下php中如何对日期时间进行处理;
设置php配置文件的日期时间
要想在php中能够正确处理日期时间,第一件事就是php.ini这个配置文件中的日期设置要正确:
设置方式:
第一种方式:在php.ini的配置文件里面找到date.timezone
选项;
设置为date.timezone= Asia/Shanghai;
或者date.timezone= PRC;
这种设置是全局有效!
第二种方式:
在php脚本中通过
date_default_timezone_set()
date_default_timezone_get()设置/获取系统的默认时间;
这种设置方式只会在当前脚本有效;所以还是推荐使用第一种设置方式;
时间处理
date(fomat,info);
功能:进行日期时间的格式化;
参数:第一个参数是格式化参数,第二个参数是要被格式化的日期时间信息;
如果第二个参数为空,则会获取当前日期时间信息进行格式化(间接的也可以通过这个函数获取当前时间)
实例:
echo date("Y-m-d H:i:s");//2016-05-02 19:38:26
常见的格式有:其他更详细的格式参数可以查看手册
Y/y:四位年数,两位年数;
M/m:月份的缩写;有前导零的月份
D/d/j:星期中的第几天,有前导零的天,无前导零月份的第几天;
g/h:有/无前导零12小时制;
G/H:有/无前导零24小时制;
i:有前导零的分钟数;
s:有前导零的秒数;
strtotime(“time_info”)
作用:将任何英文时间转换成时间戳;
常见用法;最好用的莫过于可以非常方便的获取以后或者以前的日期时间;
echo date("Y-m-d H:i:s",strtotime('now')); //2016-05-02 19:55:47
echo date("Y-m-d H:i:s",strtotime('-1days')); //2016-05-01 19:52:49
echo date("Y-m-d H:i:s",strtotime('-1week')); //2016-05-09 19:53:13
echo date("Y-m-d H:i:s",strtotime('-2year')); //2014-05-01 19:55:24
getdate(unix):
作用:根据一个时间戳获取时间,返回一个数组;在没有参数的时候会获取当前时间;
返回值:
返回是与时间戳相关的信息的一个关联数组:
[seconds] - 秒
[minutes] - 分
[hours] - 小时
[mday] - 一个月中的第几天
[wday] - 一周中的某天
[mon] - 月
[year] - 年
[yday] - 一年中的某天
[weekday] - 星期几的名称
[month] - 月份的名称
[0] - 自 Unix 纪元以来经过的秒数
microtime():
作用:获取时间戳微秒数;
mktime(hour,minute,second,month,day,year);
获取指定日期的unix时间戳;若无参数则获取当前时间的时间戳;
time()
返回当前时间的时间戳;
常用的日期处理函数就这些,其他的基本上也用不到,感兴趣的话可以查看手册;