本章介绍了日期常用的函数及经常碰到的处理日期/时间的情景,如计算两个时间的差,还简单的介绍了不同时区间的日期显示问题。对于天文日历计算方面的(儒略日)转换函数,个人认为可以忽略。
strftime() : 根据区域设置setlocal()格式化时间/日期
date() :格式一个本地日期/时间
getdate() : 取得日期/时间(可以指定某时间戳)
| Key | Value |
|---|---|
| seconds | Seconds |
| minutes | Minutes |
| hours | Hours |
| mday | Day of the month |
| wday | Day of the week, numeric (Sunday is 0, Saturday is 6) |
| mon | Month, numeric |
| year | Year, numeric (4 digits) |
| yday | Day of the year, numeric (e.g., 299) |
| weekday | Day of the week, textual, full (e.g., "Friday") |
| month | Month, textual, full (e.g., "January") |
| 0 | Seconds since epoch (what time( ) returns) |
localtime() : 返回本地服务器的时间
| Numeric position | Key | Value |
|---|---|---|
| 0 | tm_sec | Second |
| 1 | tm_min | Minutes |
| 2 | tm_hour | Hour |
| 3 | tm_mday | Day of the month |
| 4 | tm_mon | Month of the year (January is 0) |
| 5 | tm_year | Years since 1900 |
| 6 | tm_wday | Day of the week (Sunday is 0) |
| 7 | tm_yday | Day of the year |
| 8 | tm_isdst | Is daylight savings time in effect? |
mktime() : 取一个日期的unix时间戳,有6个参数时、分、秒、月、日、年
gmmktime() : 取GMT日期的unix时间戳
gregoriantojd() : 公历转儒略日(忽略)
checkdate() : 验证一个日期是否有效(例如可以判断4月31日为一错误日期)
date_default_timezone_set() : 设定用于脚本的默认时区
microtime() : 返回Unix时间戳和微秒数,用来计算程序的运行时间常用这个方法
cal_from_jd() : 转换Julian Day计数到一个支持的历法(忽略)
cal_to_jd() : 从一个支持的历法转变为Julian Day计数(忽略)
gregoriantojd() : 转变一个Gregorian历法日期到Julian Day计数(忽略)
Date_Calc () : pear的日历扩展类
putenv() : 配合localtime()通过设置一个时区的环境变量来获得当地时间(解决服务器和访问者不在同一个时区的情况)
<?php
$stamp_future = mktime(19,28,0,5,19,2011);
print strftime('%c',$stamp_future);
//输出:05/19/11 19:28:00
$a = getdate();
printf('%d-%d-%d %s:%s:%s',$a['year'],$a['mon'],$a['mday'],$a['hours'],$a['minutes'],$a['seconds']);
//输出:2011-5-19 11:32:18
// 7:32:56 pm on May 10, 1965
$epoch_1 = mktime(19,32,56,5,10,1965);
// 4:29:11 am on November 20, 1962
$epoch_2 = mktime(4,29,11,11,20,1962);
// 两个日期相差的秒数
$diff_seconds = $epoch_1 - $epoch_2;
//相差的天数
$diff_days = floor($diff_seconds/86400);
?>
儒略日(Julian day,JD)是指由公元前4713年1月1日,协调世界时中午12时开始所经过的天数,多为天文学家采用,用以作为天文学的单一历法,把不同历法的年表统一起来。如果计算相隔若干年两个日期之间的天数,利用儒略日就比较方便。