PHP从某个特定日期开始下一个星期一(随时间)

Wha*_*ied 5 php date strtotime

比如,我想在特定日期之后的下一个星期四2014-02-25.我在这里遇到的问题是,当我使用下面的代码时,时间似乎被删除了.

<?php
    $timestamp = '2014-02-25 10:30:00';

    echo date('Y-m-d H:i:s', strtotime("next Thursday", strtotime($timestamp)));
?>
Run Code Online (Sandbox Code Playgroud)

我得到的结果是2014-02-27 00:00:00我想要它的时候2014-02-27 10:30:00

我在这里缺少什么导致时间设置为午夜?

感谢你的帮助,谢谢.

hek*_*mgl 8

没有时间格式可以直接表达这一点.你需要生成一个像这样的格式

next Thursday 10:30:00
Run Code Online (Sandbox Code Playgroud)

...手动并将其传递给strtotime().您需要从参考时间字符串中提取的时间信息.像这样:

$refdate = '2014-02-25 10:30:00';
$timestamp = strtotime($refdate);

echo date('Y-m-d H:i:s',
    strtotime("next Thursday " . date('H:i:s', $timestamp), $timestamp)
);
Run Code Online (Sandbox Code Playgroud)

使用字符串连接可以实现相同的结果:

echo date('Y-m-d', strtotime("next Thursday", $timestamp)
    . ' ' . date('H:i:s', $timestamp);
Run Code Online (Sandbox Code Playgroud)

所谓的文档relative time formats可以在这里找到