php日期时间函数 整理

设定系统默认时区 date_default_timezone_get()

$tz='America/Los_Angeles';

返回系统默认时区 date_default_timezone_set($tz)

time()

函数返回当前时间戳

PHP 5.1 起在 $_SERVER['REQUEST_TIME'] 中保存了发起该请求时刻的时间戳,

即time()=$_SERVER['REQUEST_TIME']

echo time();

1382349671

microtime()

计算程序运行时间中经常使用,返回时间的微秒值。

不带参数是返回格式:“msec sec”;sec为秒数,msec为微秒数,均以‘秒’为单位

带参数则返回一个浮点数

echo gettimeofday(true).'<br />';

print_r(gettimeofday());

#返回: 1252307184.5781 Array ( [sec] => 1252307184 [usec] => 578148 [minuteswest] => 0 [dsttime] => 0 )

checkdate(month,day,year)

验证一个格里高里日期,如果指定的值合法则返回true,否则返回false

var_dump(checkdate(12,31,2008));

var_dump(checkdate(2,29,2009));

#返回: bool(true) bool(false)

mktime(hour,minute,second,month,day,year,is_dst)

返回一个日期的 Unix 时间戳。

参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。

is_dst 本参数可以设为 1,表示正处于夏时制时间(DST),0 表示不是夏时制,或者 -1(默认值)表示不知道是否是夏时制

gmmktime(hour,minute,second,month,day,year,is_dst)

取得 GMT 日期的 UNIX 时间戳。

与 mktime() 类似,不同的是返回值是格林威治标准时的时间戳(注:GMT时间值根据时区的设置不同,本函数的GMT日期的时区为UTC即格林威治标准时间, 返回值不会随时区设置‘date_default_timezone_set()’的变化而变化)

strtotime(time,now)

将任何英文文本的日期时间描述解析为 Unix 时间戳。

如: echo strtotime("now"), "\n";

echo strtotime("10 September 2000"), "\n";

echo strtotime("+1 day"), "\n";

echo strtotime("+1 week"), "\n";

echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";

echo strtotime("next Thursday"), "\n";

echo strtotime("last Monday"), "\n";

date(format,timestamp)

格式化一个本地时间/日期。

format

返回结果格式

timestamp (可选)

被格式话的时间戳值,默认为当前时间戳

年 大写Y、小写y (大写Y表示年四位数字,而小写y表示年的两位数字);

月 大写F、大写M、小写m、小写n (大写F表示月份的英文全称,大写M表示月份的3个缩写字母,小写m表示带前导的数字,小写n表示不带前导数字)

日 小写d、小写j、大写S (小写s表示带前导的数字,小写j表示不带前导数字,大写S表示日期后缀)

时 大写H、小写h、大写G、小写g、大写A、小写a (大写H表示24时制带前导,而小写h不带前导;

    大写G表示12时制带前导,而小写g不带前导;大写A表示大写的AM或PM,而小写a表示小写的am或pm)

分 小写i (小写i表示带前导的数字)

秒 小写s (小写s表示带前导的数字) 星期 小写w、大写W、小写l、大写D (小写w表示数字形式星期几,大写W表示一年中的星期数,带前导,小写i表示星期英文全称,大写D表示英文缩写)

echo date('Y-m-d H:i:s');

#返回: 2009-09-07 06:42:48 idate(format,timestamp) 将本地时间/日期格式化为整数 与 date() 不同,idate() 只接受一个字符作为 format 参数 getdate(timestamp) 取得日期/时间信息 print_r(getdate()); #返回: Array ( [seconds] => 46 [minutes] => 35 [hours] => 6 [mday] => 7 [wday] => 1 [mon] => 9 [year] => 2009 [yday] => 249 [weekday] => Monday [month] => September [0] => 1252305346 ) gmdate(format,timestamp) 格式化 GMT/UTC 日期/时间 同 date() 函数 类似,不同的是返回的时间是格林威治标准时间(GMT)。

strftime(format,timestamp)

根据区域设置格式化本地时间/日期 format

时间的格式化样式 timestamp (可选) 指定的时间戳,默认为当前时间按戳 %a - 当前区域星期几的简写 %A - 当前区域星期几的全称 %b - 当前区域月份的简写 %B - 当前区域月份的全称 %c - 当前区域首选的日期时间表达

echo strftime('今天是%a-%A-%b-%B-%d.');

今天是Mon-Monday-Oct-October-21.

strptime(date,format)

解析由 strftime() 生成的日期/时间 返回解析后的数组,出错则返回false 该函数可能被淘汰,

在php5.2中无法使用

localtime ([ int $timestamp [, bool $is_associative ]] )

取得本地时间

函数返回一个数组,其结构和 C 函数调用返回的完全一样。

localtime()的第一个参数是时间戳,如果没有给出则使用从 time() 返回的当前时间。

第二个参数是 is_associative,如果设为 FALSE或未提供则返回的是普通的数字索引数组。

如果该参数设为 TRUE 则 localtime() 函数返回包含有所有从 C 的 localtime 函数调用所返回的不同单元的关联数组。

$localtime = localtime();

$localtime_assoc = localtime(time(), true);

print_r($localtime);

print_r($localtime_assoc);

Array ( [0] => 11 [1] => 1 [2] => 18 [3] => 21 [4] => 9 [5] => 113 [6] => 1 [7] => 293 [8] => 0 )

Array ( [tm_sec] => 11 [tm_min] => 1 [tm_hour] => 18 [tm_mday] => 21 [tm_mon] => 9 [tm_year] => 113 [tm_wday] => 1 [tm_yday] => 293 [tm_isdst] => 0 )

参考:http://blog.csdn.net/chenhj1988918/article/details/7227813