php将固定日期值添加到strtotime()

时间:2012-06-17 19:23:12

标签: php datetime time strtotime

我正在使用strtotime($my_time);来创建我在php math中使用的时间戳。

变量$my_time是从数据库中提取的HH:mm:ss 24h格式。

我正在设定时间,但我不知道正在制作的日期。出于这个原因,我试图设定一个固定的日期。我尝试了以下但是我在计算中得到了错误的结果。

strtotime('2007-12-21', $my_time);

strtotime( '+1 day', strtotime('2007-12-21', $my_time); //should produce 2007-12-21 00:00:00 ?

请帮助我了解如何在strtotime()和动态时间设置固定日期?

注意:DateTime类不是我正在使用的代码中的一个选项。

3 个答案:

答案 0 :(得分:3)

strtotime将第二个值视为Unix时间戳格式的整数,如PHP Documentation上所示

也许您打算使用点而不是逗号,如下所示:

strtotime('2007-12-21 ' . $my_time);

strtotime( '+1 day', strtotime('2007-12-21 ' . $my_time);

答案 1 :(得分:2)

它可能只是一个空间问题。尝试:

strtotime( '+1 day', strtotime('2007-12-21 ' . $my_time);

仅供参考,如果$my_time确实包含值00:00:00,那么您可以安全地从strtotime()中省略它。它没有它就可以工作。

答案 2 :(得分:2)

您应该将字符串连接成一个参数,而不是提供两个参数。

strtotime('1970-01-01 ' . $my_time);

我还将日期改为1970-01-01作为日期,因为这是UNIX时间戳开始的时候,只有几秒才能使用。以这种方式排除故障可能更容易,因为您可以一眼看出一个数字是否大于另一个数字,您还可以轻松发现诸如> 86400等故障。