php时间详解

来源:互联网 发布:手机淘宝代付 编辑:程序博客网 时间:2024/05/16 04:00
//php时间详解
国际上主要有两个时间:
通用协调时间(UTC,Universal Time Coordinated)
格林威治标准时间(GMT)
两者相同,都与英国伦敦的本地时间相同


php 5.0对date()函数进行了重写,在php中默认设置的是格林威治时间(0时区),所以为了获取到正确的时间,必须更改php中的时区设置,有两种方法:
1)修改php.ini文件,把“;date.timezone = ”修改为“date.timezone = Asia/Shanghai”,重启服务器
2)在使用时间日期函数前添加如下函数:date_default_timezone_set("Asia/Shanghai");
*如果使用的是虚拟空间,则必须使用第二种方法了


获取本地化的时间戳:
int mktime(int hour,int minute,int second,int month,int day,int year[,int is_dst])
此函数根据给出的参数返回unix时间戳,时间戳是一个长整数,包含了从unix纪元(1970年1月1日)到给定时间的秒数,其参数可以从右向左省略,任何省略的参数会被设置成本地日期和当前时间
* is_dst 参数is_dst在夏令时可以被设置为1,如果不是设置为0,不确定设置为-1(默认)
*没有一个参数调用此函数,返回当前时间的时间戳,此时与time()函数相同


获取当前日期和时间戳:(date()函数)
date(string format[,int timestamp])
date()函数将按照timestamp时间戳指定的时间,返回规定格式的字符串,如果没有timestamp参数则使用当前时间
format参数有几个预定义常量,可以返回指定格式的时间:
DATE_ATOM  原子钟格式
DATE_COOKIE  HTTP Cookies格式
DATE_ISO8601  ISO-8601格式
DATE_RFC822   RFC822格式
DATE_RFC850   RFC850格式
DATE_RSS      RSS格式
DATE_W3C      world wide web consortium格式


获取日期信息array getdate([int timestamp])如果没有参数则以当前时间为准,返回的关联数组是:
seconds    秒(0-59)
minutes    分(0-59)
hours      小时(0-23)
mday       月份中第几天(1-31)
wday       星期中的第几天(0星期日-6星期六)
mon        月份数字(1-12)
year       4位数字表示的年
yday       一年中的第几天(0-365)
weekday    星期几的完整文本表示(sunday-saturday)
month      月份的完整表示(january-december)
0          返回从unix纪元开始的秒数


检验日期的有效性:
bool checkdate(int month,int day,int year);


输出格式化的日期和时间:
主要讲解date参数formate的格式化选项
太多了,讲几个常用的,其它的查手册
Y 4位数字完整表示的年份
m 数字表示的月份,有前导零,返回值01-12
d 月份中的第几天,有前导零的两位数字,返回值01-31
h 小时12小时格式,没有前导零,1-12
H 小时24小时格式,没有前导零,0-23
i 有前导零的分,返回值00-59
s 秒数,有前导零,返回值00-59
eg:
echo date("Y-m-d H:i:s"); //2012-01-03 01:19:09


计算页面脚本的运行时间:
可以使用string microtime()函数,该函数返回当前的unix时间戳,和微秒数,格式是 msec sec