现在,第二个参数在strtotime中意味着什么

时间:2018-08-07 09:08:43

标签: php datetime

strtotime函数中第二个参数的作用是什么?

根据第一个$time参数返回 Unix timestamp (the number of seconds since January 1 1970 00:00:00 UTC),

然后第二个参数如何影响结果?

2 个答案:

答案 0 :(得分:3)

在引用本身中是这样写的:

  

用作计算相对值的基础的时间戳   日期。

这意味着第二个参数将作为基础。例如,如果您提供昨天的时间戳记的基准,则该函数将返回从昨天开始经过的秒数,而不是1970年1月1日UTC

例如,让我们运行以下代码(其中1514160000是2017年圣诞节的时间戳,即2017年12月25日的00:00:00):

$ts1 = strtotime("tomorrow", 1514160000);
echo "Date: " . date('Y-m-d', $ts1) . ", timestamp: " . $ts1 . "<br>";

$ts2 = strtotime("tomorrow");
echo "Date: " . date('Y-m-d', $ts2) . ", timestamp: " . $ts2 . "<br>";

将打印:

Date: 2017-12-26, timestamp: 1514246400
Date: 2018-08-08, timestamp: 1533686400

您可以清楚地看到,当我将时间戳记用作第二个参数时,该函数将其作为基准,并且“明天”导致日期为“ 2017-12-26”,这是给定基准的第二天时间戳记。在下一个示例中,当我直接通过“明天”而没有任何根据时,它将导致从今天开始的下一个日期。

我希望这可以澄清第二个参数的使用。

答案 1 :(得分:2)

strtotime()可以将相对日期作为第一个参数,例如“ +1天”。

在此用法中,第二个参数$ now定义要使用的引用。默认情况下,它是通过time()获得的当前时间戳。

例如:

strtotime("+1 day"); //1533719923, timestamp of tomorrow, 8 august 2018
strtotime("+1 day", 0); //86400, timestamp of 2 january 1970