PHP time():获取当前时间戳

在 UNIX 系统中,日期与时间表示为自 1970 年 01 月 01 日 00 时 00 分 00 秒(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒)起到当前时刻的总秒数,这种时间称为 UNIX 时间戳

UNIX 时间截提供了一种统一、简洁的时间表示方式,在不同的操作系统中均支持这种时间表示方式,同一时间在 UNIX 和 Windows 系统中均以相同的 UNIX 时间戳表示,所以不需要在不同的系统中进行转换。同时,UNIX 时间戳是一个时间差,与时区没有关系,无论当前 PHP 中使用的是何种时区,其 UNIX 时间戳是唯一的。

PHP 为 UNIX 时间戳的处理提供了多种函数。到目前的 PHP 版本为止,由于任何已知的 Windows 版本以及其他一些系统均不支持负的时间戳,因此在 Windows 中无法表示 1970 年 1 月 1 日之前的时间。

由于目前有一部分操作系统使用 32 位二进制数字表示时间。此类系统的 UNIX 时间戳最多可以使用到格林威治时间 2038 年 01 月 19 日 03 时 14 分 07 秒(二进制表示为:01111111 11111111 11111111 11111111)。其下一秒,二进制数字会变为 10000000 00000000 00000000 00000000,发生了溢出错误,造成系统将时间误解为 1901 年 12 月 13 日 20 时 45 分 52 秒。这很可能会引起软件故障,甚至是系统瘫痪。而使用 64 位二进制数字表示时间的系统,最多可以使用到格林威治时间 292277026596 年 12 月 04 日 15 时 30 分 08 秒,基本不会遇到这类溢出问题。

说了这么多,那么我们要怎么获取当前的时间戳呢?下面就来详细介绍一下。

我们可以使用 PHP 中的 time() 函数来获取当前的 UNIX 时间戳,函数的语法格式如下:

time()

time() 函数没有参数,其返回值为 UNIX 时间戳的整数值。

【示例】使用 time() 函数获取当前时间戳。
<?php
    $time = time();
    echo '当前的时间戳为:'.$time.'<br>';
    date_default_timezone_set('GMT');
    $time = time();
    echo '将时区设置为零时区,获取的时间戳为:'.$time;
?>
运行结果如下:

当前的时间戳为:1585203148
将时区设置为零时区,获取的时间戳为:1585203148