我遇到了一个奇怪的问题。当我做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
答案 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。您必须在date
或strtotime
中明确传递时间才能获得所需的行为。有关类似问题,请参阅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