microtime
如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。按照格林威治时间计算
time
返回当前的 Unix 时间戳(自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数),按照格林威治时间计算
<?php
ini_set("date.timezone","America/Adak");
$time1 = time();
$microtime1 = microtime();
$date1 =date("Y-m-d H:i:s",$time1);
var_dump($time1); //1531885452
var_dump($microtime1); //0.77137300 1531885452
var_dump($date1); //2018-07-17 18:44:12
ini_set("date.timezone", "Asia/Shanghai");
$time2 = time();
$microtime2 = microtime();
$date2 =date("Y-m-d H:i:s",$time2);
var_dump($time2); //1531885452
var_dump($microtime2); //0.77140900 1531885452
var_dump($date2); //2018-07-18 11:44:12
?>
结果如下
所以,microtime()和time()是和时区无关的,但是date()是和时区有关的.
拓展:strtotime() 函数则比较有意思,他会根据字符串特征进行时间戳转换,如果只是普通的 Y-m-d H:i:s ,他会计算时区差异,而如果你是GMT格式的字符串,它能识别,并不考虑时区差异,直接转换