第 1 章 Unix 时间戳
Unix 时间戳:
自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数 .
相关函数:
time() — 函数返回一个当前系统的时间戳
mktime() — 取得一个日期的 Unix 时间戳
格式:int mktime(时 [, 分 [, 秒 [, 月 [, 日 [, 年 [,is_dst 区]]]]]]);
注意:is_dst 参数表示是否为夏时制,PHP5.10 后此参数已废除。
strtotime() — 将任何英文文本的日期时间描述解析为 Unix 时间戳
格式:int strtotime (string $time [, int $now] )
案例:
// 系统时间戳
echo "当前系统的时间戳:".time(); // 秒数
//mktime -- 给我一个年月日时分秒,我返还给你一个时间戳, 用的非常少
echo "获取指定日期 2033-2-12 的时间戳:".mktime(0,0,0,2,12,2033);
//strtotime() -- 如果使用也是用这个
echo "获取指定日期 2034-1- 1 的时间戳:".strtotime('2034-1-1');
echo "获取 3 天前的时间戳:".strtotime('-3 day');
echo "获取 3 天后的时间戳:".strtotime('3 day');
第 2 章 在 PHP 中获取日期和时间
getdate — 取得日期/时间信息。
格式:array getdate ([int timestamp] )
返回一个根据 timestamp 得出的包含有日期信息的结合数组。如果没有给出时间戳则认为是当前本地时间。
//getdate --- 获取日期 / 时间信息
$date = getdate();// 当前日期信息
//$date = getdate(234456768);// 获取指定时间戳的日期信息
echo "<pre>";// 格式化输出
print_r($date);// 打印时间数组
date — 格式化一个本地时间/日期。
格式:string date (string format [, int timestamp] )
返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()(当前时间戳)。
例如:echo date(“Y 年 m 月 d 日 H:i:s”); //2010 年 10 月 28 日 14:22:28
常用参数:
Y:四位数年 m:月 01-12 n: 月 1 -12 d:天 01-31 j:天 1 -31
H:时 24 时制 h:小时 12 制 i:分钟 00-59 s:秒 00-59 w:星期几 0 -6
A:上午 AM 或下午 PM a:上午 am 或下午 pm。
案例:
//date --- 格式化一个本地时间 / 日期
echo date("Y 年 m 月 d",time());
echo date("Y/m/d",time());
echo date("Y-m-d H:i:s");// 不写第二个参数默认是当前时间戳
第 3 章 修改 PHP 的默认时区
修改 PHP 的默认时区有两种方式:
1、修 php.ini 配置文件:date.timezone = PRC
2、date_default_timezone_set(): — 设定用于一个脚本中所有日期时间函数的默认时区。
如:date_default_timezone_set(“PRC”); // 中国时区。
3、date_default_timezone_get(): — 获取当前时区
案例:
date_default_timezone_set('PRC');// 设置中国时区
//date --- 格式化一个本地时间 / 日期
echo date("Y 年 m 月 d",time());
echo date("Y/m/d",time());
echo date("Y-m-d H:i:s");// 不写第二个参数默认是当前时间戳
第 4 章 使用微秒计算 PHP 脚本执行时间
1 毫秒 (ms) = 0.001 秒 (s)
1 微秒 (μs) = 0.001 毫秒 (ms)
1 纳秒 (ns) = 0.001 微秒 (μs)
microtime — 返回当前 Unix 时间戳和微秒数
格式:mixed microtime ([bool get_as_float] )
microtime() 当前 Unix 时间戳以及微秒数。
如果调用时不带可选参数,本函数返回一个字符串,其中后者是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,前者 是微秒部分。
如果给出了参数并且其值等价于 TRUE,microtime() 将返回一个截取为小数点 4 带秒数为浮点数。
$start = microtime(true);
for($i=1;$i<10000;$i++) {$tmp = 13333/234;}
$end = microtime(true);
echo $end - $start;