PHP strtotime总是在午夜返回

时间:2015-08-21 04:29:45

标签: php date strtotime

我遇到了一个奇怪的问题。当我做strtotime时,它没有考虑原始日期的小时部分,并且它总是在午夜返回。我试着研究但是找不到具体的东西。

我有什么遗失的吗?

$original_date = "2015-08-07 02:00:00";
$next_date = date('Y-m-d H:i:s', strtotime("monday this Week +1 week", strtotime($original_date)));

它会将$next_date作为2015-08-14 00:00:00

返回

4 个答案:

答案 0 :(得分:5)

试试这个,在下一个日期添加你想要检索的时间,。

{{1}}

答案 1 :(得分:3)

monday this week +1 week假设您正在寻找过去一周的星期一的午夜。如果您希望保留部分时间,则可以将其附加到date格式,因为它应始终与$original_date

中的相同
date('Y-m-d ' . date('H:i:s', strtotime($original_date)), strtotime("monday this Week +1 week", strtotime($original_date)));

答案 2 :(得分:3)

monday中使用strtotime时,您需要将时间重置为00:00:00。您必须在datestrtotime中明确传递时间才能获得所需的行为。有关类似问题,请参阅this same question

$next_date = date('Y-m-d H:i:s', strtotime("monday this Week +1 week " . date('H:i:s', strtotime($original_date)), strtotime($original_date)))

答案 3 :(得分:3)

$date = strtotime('2018-08-14 02:00:00');
$next_date = date('Y-m-d H:i:s', strtotime("monday this Week 02:00:00 +1 week", $date)); // 2018-08-20 02:00:00