Time
hrtime
获取系统的高精度时间纳秒数
从任意时间点开始统计,返回系统的高精度时间(high resolution time)。 获取的时间戳为单调时间,无法被用户调整。
返回值 ¶
参数 as_number 为 false 时,返回的整型数组格式为 [seconds, nanoseconds]。否则会以 int (64 位平台)或 float (32 位平台)返回奈秒(nanoseconds)。失败时返回 false。
echo hrtime(true), PHP_EOL; // 获取当前纳秒数
print_r(hrtime()); // 获取当前时间戳和纳秒数数组[seconds, nanoseconds]
/*
265667675352166
Array
(
[0] => 265667
[1] => 675360666
)
*/
microtime
返回当前 Unix 时间戳和微秒数
echo microtime() . PHP_EOL; // 0.31301300 1531104655
echo microtime(true); // 1531104655.3131
echo time(); // 1531104655
sleep
程序延迟执行指定的 seconds 的秒数。
sleep(10); // 延迟10秒执行
usleep
以指定的微秒数延缓程序的执行。(1微秒(micro second)是百万分之一秒。)
usleep(2000000);// 延迟2秒执行
date_default_timezone_set
设定用于一个脚本中所有日期时间函数的默认时区
/*一些常用的时区标识符说明:
Asia/Shanghai # 上海GMT+8:00
Asia/Chongqing # 重庆
Asia/Urumqi # 乌鲁木齐
Asia/Hong_Kong # 香港
Asia/Macao # 澳门
Asia/Taipei # 台北
Asia/Singapore # 新加坡
PRC # 北京时间
America/New_York # 美国纽约
*/
ini_set('date.timezone', 'Asia/Shanghai'); // 设置配置文件时区
date_default_timezone_set('Asia/Shanghai');
gmstrftime
程序延迟执行指定的 seconds 的秒数。
注:gmstrftime()函数与strftime()函数用法大致相同,唯一的不同点是gmstrftime()函数返回的格林威治时间(GMT:Greenwich Mean Time)
// 一个应用场景需要用到倒计时的时分秒,比如新浪微博授权有效期剩余: 7天16小时47分钟42秒……
define("BJTIMESTAMP", time()); //服务器当前时间
$expires_in = '1439577160';//到期时间
$expires = $expires_in - BJTIMESTAMP;
// 一个应用场景需要用到倒计时的时分秒,比如新浪微博授权有效期剩余: 7天16小时47分钟42秒……
function time2second($seconds)
{
$seconds = (int)$seconds;
if ($seconds < 86400) {//如果不到一天
$format_time = gmstrftime('%H时%M分%S秒', $seconds);
} else {
$time = explode(' ', gmstrftime('%j %H %M %S', $seconds));//Array ( [0] => 04 [1] => 14 [2] => 14 [3] => 35 )
$format_time = ($time[0] - 1) . '天' . $time[1] . '时' . $time[2] . '分' . $time[3] . '秒';
}
return $format_time;
}
echo "新浪微博授权有效期剩余: " . time2second($expires) . PHP_EOL;
// 注:gmstrftime() 返回的天数是一年中的第几天,因此时间超过一年,请使用下述代码。
function time2second($seconds)
{
$seconds = (int)$seconds;
if ($seconds > 3600) {
if ($seconds > 24 * 3600) {
$days = (int)($seconds / 86400);
$days_num = $days . "天";
$seconds = $seconds % 86400;//取余
}
$hours = intval($seconds / 3600);
$minutes = $seconds % 3600;//取余下秒数
$time = $days_num . $hours . "小时" . gmstrftime('%M分钟%S秒', $minutes);
} else {
$time = gmstrftime('%H小时%M分钟%S秒', $seconds);
}
return $time;
}
echo "新浪微博授权有效期剩余: " . time2second($expires) . '<hr>';