[TOC]

UNIX时间戳是以1970年1月1日零点做为基础的, 该时间也成为UNIX纪元.

现在的时间,便是UNIX纪元到现在的秒数.

#time() 获取当前UNIX时间戳

echo time();

#date() 将UNIX时间戳转成人类能看懂的时间

echo date("Y-m-d H:i:s");
echo date("Y-m-d H:i:s", time());

#mktime() 将时间转成UNIX时间戳

int mktime([int hour [,int minute [,int second [,int month [,int day [, int year]]]]]])

例子

//日期超过31天,计算后输出Jan-05-2008
echo date("M-d-Y", mktime(0, 0, 0, 12, 36, 2007))."\n";

//月份超过12月,计算后输出Feb-01-2009
echo date("M-d-Y", mktime(0, 0, 0, 14, 1, 2008))."\n";

//没有问题的转变,输出结果 Jan-01-2009
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 2009))."\n";

//会将99年转变为1999年, Jan-01-1999
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 99))."\n";

#strtotime() 日期的计算 例子:

//输出3天后的时间
echo date("Y-m-d",strtotime("+3 day"));

//输出3个月前的时间
echo date("Y-m-d",strtotime("-3 month"));

//输出3个年后的时间
echo date("Y-m-d",strtotime("+3 year"));

//更强大的用法, 输出UNIX时间戳, 比mktime好用!
echo strtotime('2014-10-01 00:00:00');

设置PHP的时区

PHP的默认时区为UTC格林威治标准时间, 而北京位于东八时区,比UTC早八个小时,所以一般需要设置一下时区.

  1. 通过php.ini设置 php data.timezone = Asia/Shang #或者 data.timezone = PRC
  2. 如果没权限修改php.ini,用函数设置 php date_default_timezone_set("PRC"); echo date("Y-m-d H:i:s", time());