PHP的时间和日期函数

一、日期和时间函数

  • date 函数将服务器的时间格式化
  • getdate 获得时间及日期信息
  • time 获取目前时间的unix时间戳

1、date:获取日期和时间

通过date函数可以获取按照指定格式输出的日期和时间信息,如果省略参数,会自动获取本地的当前时间

参数 说明
Y 四位数字完整表示年份
y 两位数字表示年份
M 三个字母表示月份
m 数字表示月份
D 星期中的第几天
H 24小时格式
h 12小时格式
I 是否为夏令时
i 分钟数
s 秒杀
#date('显示格式',时间戳);
echo date("Y-m-d H:i:s");

2、getdate() 获取日期信息

print_r(getdate());
/*
Array
(
    [seconds] => 46
    [minutes] => 18
    [hours] => 19
    [mday] => 21
    [wday] => 4
    [mon] => 9
    [year] => 2017
    [yday] => 263
    [weekday] => Thursday
    [month] => September
    [0] => 1505992726
)
*/

3、time() 生成时间戳

时间戳(timestamp)是从格林威治时间1970年1月1日零点(北京时间1970年01月01日08时00分00秒)开始起,到当前时间所经过的秒数。

4、日期转unix时间戳

可以使用mktime()函数找到特定日期的时间戳;

#$stamp = mktime(hour,minute,second,month,day,year);
$date = mktime(9, 12, 31, 6, 10, 2015);
echo "创建日期是 " . date("Y-m-d h:i:sa", $date);

如果不带参数调用mktime(),它会返回当前的时间戳

3、日期计算

两个相隔日期计算:(时间戳A-时间戳B)/60*60*24*365

二、修改时区

  1. 修改 php.ini配置文件

    data.timezone = "Asia/Shanghai";
    //date.timezone = PRC
  2. 使用函数 在程序PHP 5以上版本的程序代码中使用函数
    date_default_timezone_set('Asia/Shanghai');
    //或者
    ini_set('date.timezone','Asia/Shanghai');

三、几个出现频率很高的面试题

用PHP打印出前一天的时间格式是(2016-5-10 22:21:21)

求两个日期的差数,例如2007-2-5 ~ 2007-3--6的日期差数