当前位置:  首页>> 技术小册>> PHP8入门与项目实战(4)

对于未来的时间点实现倒计时,其实就是使用当下的时间戳和未来的时间点进行比较和运算。

下面通过实例来介绍如何实现倒计时功能。

【例7.9】

  1. <?php
  2. $timestampfuture = mktime(0,0,0,12,12,2023); //获取指定日期的时间戳
  3. $timestampnow = time(); //获取当前日期的时间戳
  4. $timecount = $timestampfuture - $timestampnow; //获取倒计时的时间差
  5. $days = round($timecount/86400); //获取天数
  6. echo "今天是".date('Y F d')." ,距离2023年12月12号的时间戳,还有".$days."天。";
  7. ?>

运行结果如图7-9所示。

【案例分析】
(1)mktime()不带任何参数,所生成的时间戳是当前时间的时间戳。

(2)$timecount是现在的时间戳距离未来时间点的时间戳的秒数。

(3)round($timecount/86400),其中86400为一天的秒数,$timecount/86400为得到天数,round()函数取约数而得到天数。

如何使用微秒?
有些时候,某些应用要求使用比秒更小的时间单位来表明时间。比如,在一段测试程序运行的程序中,可能要使用到微秒级的时间单位来表明时间,这时就需要使用函数microtime(true):

  1. <?php
  2. $timestamp = microtime(true);
  3. echo $timestamp;
  4. ?>

定义时间和日期时出现警告怎么办?
在运行PHP程序时,有时会出现这样的警告:PHP Warning: date(): It is not safe to rely on the system’s timezone settings。出现上述警告是因为PHP所取的时间是格林尼治标准时间,和用户当地的时间会有出入,由于格林尼治标准时间和北京时间大概差8个小时,因此会弹出警告。可以使用下面方法中的任意一种来解决。

(1)在页头使用date_default_timezone_set()设置默认时区为北京时间,即<?php date_default_timezone_set(“PRC”); ?>,例如本章例7.2中所示。

(2)在php.ini中设置date.timezone的值为PRC,设置语句为date.timezone=PRC,同时取消这一行代码的注释,即去掉前面的分号。