PHP time, date

日期函数总结——

一、返回时间戳——若整体数值超出计算机能力范围,返回空。

1. time();返回当前的 Unix 时间戳

例:$a=time();

var_dump($a);

//输出:int(1392192781)

2.strtotime();将其他格式解析为 Unix 时间戳

例:$b = strtotime ( "now" );

var_dump($b);

//输出:int(1392192781)

/*下括号内格式例:

( "10 September 2000" )

( "+1 day" ) 明天

( "+1 days" ) 明天

( "+1 week" )

( "+1 week 2 days 4 hours 2 seconds" )

( "next Thursday" ) 下周二

( "last Monday" )

( "2011-5-19 14:07" );

*/

3.mktime(时[,分[,秒[,月[,日[,年]]]]]);

都可以超出自然范围,如27月,超出向高位加;若整体数值超出计算机能力范围,返回false。

例:var_dump(mktime(12,0,0,12,30,2012));

//输出:int(1356868800)

4.microtime();返回微秒精度的时间戳字符串。

二、返回一个数组

1.getdate();时间戳(默认今天)返回一个数组。

$today = getdate();

var_dump($today);

/*输出数组:

array(11) {

["seconds"]=>int(32)

["minutes"]=>int(27)

["hours"]=>int(8)

["mday"]=>int(12)

["wday"]=>int(3)

["mon"]=>int(2)

["year"]=>int(2014)

["yday"]=>int(42)

["weekday"]=>string(9) "Wednesday"

["month"]=>string(8) "February"

[0]=>int(1392193652)

}

*/

三、格式化输出

date(); 格式string date ( string format [, int timestamp] )

string format 常用:

Y:四位数年 m:月01-12 n:月1-12 d:天01-31 j:天1-31

H:时24时制 h:小时12制 i:分钟00-59 s:秒00-59 w:星期几0-6

A:上午AM或下午PM a:上午am或下午pm。

例:var_dump(date("Y-m-d H:i:s",1391919385));

//string(19) "2014-02-09 04:16:25"

四、修改默认时区

1、修php.ini配置文件:

date.timezone = Etc/GMT+8

2、date_default_timezone_set(); 设定用于一个脚本中所有日期时间函数的默认时区 。

如:date_default_timezone_set("PRC"); //中国时区。

另:date_default_timezone_get(); //获取当前时区

那么问题来了:

1. 求今天凌晨的时间戳?

2. 求明年1月1号距离今天(第二天凌晨算起)有多少天?