int time ( )
mixed microtime ( [bool get_as_float])
PHP有一个以Unix时间戳格式获取当前时间的基本函数:time()
。time()
没有参数,以Unix时间戳格式返回当前时间。下面是一个例子:
<?php
print time();
$foo = time();
print $foo;
?>
正如你所看到的,我们可以直接输出time()
的返回值,也可以将其保存到变量之后,输出变量的值。这两种操作的结果是一致的。
使用Unix时间戳意味着你不必绑定到任何特殊的格式:也就是说你不必担心日期放在月份前面还是后面,也不必担心月份是一位数还是两位数,更不用操心星期的写法(Saturday, Tue, W等各种格式)等等。
更进一步,想要加上一天(得到当前日期的第二天),你只要在当前日期的时间戳上加上相当于一天的秒数就可以了,也就是60×60×24=86400。所以,想要往前移动一天的话,只要减去86400秒就可以了,以此类推。唯一的例外是夏令时和闰秒的时候,但是也有方便的方法来处理。
对于更为精确的时间,可以使用microtime()
函数。当不使用任何参数直接调用的时候,返回dang系统时间的秒和毫秒数,毫秒在前。例如0.30485800 1420017140
。如果给它传递一个true作为参数,PHP将会用一种更友好的方式返回结果:秒.毫秒
,例如1420017496.92
。
当使用microtime()
的时候需要注意返回值是一个浮点型的数。在你的php.ini
文件中有个叫做precision
精度的设定,可以设定浮点型有效数字的位数。注意是有效数字而不是小数位数,也就是说返回值可能不是你想要的精度。上面的例子中只有两位小数,也就是说php.ini
中设置为12位,小数点前面占了10位。
如果你将精度增加到18,再次运行microtime()
,就可以看到精确度更高的结果,如1174677004.8997819
。