前面我们介绍了《time() 函数》可以获取当前的时间戳,那么如果想要将一个具体的时间转换成时间戳的话该怎么办呢?
PHP 中提供了两个函数可以实现将具体的日期转换为时间戳,分别是 strtotime() 函数和 mktime() 函数。下面我们来分别介绍一下。
使用 strtotime() 函数可以将任何字符串类型的日期/时间转换为 UNIX 时间戳,其语法格式如下:
其中 $time 为表示时间/日期的字符串,例如“2020-01-01”;$now 为可选参数,用来计算返回值的时间戳。函数执行成功会返回指定的字符串,执行失败返回 FALSE。
另外需要注意的是,如果使用两位数字表示年份的话,其中 0 ~ 69 表示 2000 ~ 2069,70 ~ 100 则表示 1970 ~ 2000。
【示例】使用 strtotime() 函数获取指定时间的时间戳。
<?php
echo '当前的时间戳是:'.time().'<br>';
echo '使用“now”获取当前的时间戳:'.strtotime('now').'<br>';
echo '2000-09-10 的时间戳是:'.strtotime("10 September 2000").'<br>';
echo '在当前的时间戳上加一天:'.strtotime("+1 day").'<br>';
echo '在当前的时间戳上加一周:'.strtotime("+1 week").'<br>';
echo '在当前的时间戳上加一周两天四小时两分钟:'.strtotime("+1 week 2 days 4 hours 2 seconds").'<br>';
echo '下一个周四的时间戳:'.strtotime("next Thursday").'<br>';
echo '上一个周一的时间戳:'.strtotime("last Monday").'<br>';
?>
运行结果如下:
注意:根据具体时间的变化,程序每次运行的结果略有不同。
除了 strtotime() 函数外,我们还可以使用 PHP 中的 mktime() 函数来获取指定日期的 UNIX 时间戳,该函数的语法格式如下:
参数说明如下:
提示:mktime() 函数中的参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。如果省略函数的所有参数,那么 mktime() 函数会和 time() 函数一样,返回当前的时间戳。
【示例】使用 mktime() 函数获取指定时间的时间戳。
<?php
$time1 = time();
echo '当前的时间戳是:'.$time1.'<br>';
$time2 = mktime(0, 0, 0, 3, 26, 20);
echo '2020-03-26 00:00:00 的时间戳是:'.$time2.'<br>';
$time3 = mktime();
echo '省略函数的所有参数,获得的时间戳是:'.$time3.'<br>';
$time4 = mktime(-1, -20, 6, 3, 26, 2020);
echo '2020-03-25 22:40:06 的时间戳是:'.$time4.'<br>';
?>
运行结果如下: