相对于特定日期获得下一个星期四

时间:2014-07-25 10:59:16

标签: php date

如果过去的日期不是周四,我希望​​在下一个星期四相对于特定日期。这与代码有多远。

<?php 

$string = '2014.07.16';
$date = DateTime::createFromFormat("Y.m.d", $string);
$result = $date->format("D");
if ($result != 'Thu')
{
$result2 = strtotime('next Thursday');
echo date('Y.m.d', $result2);
}
?>

在上面的代码中,变量$ string是传递的日期,即&#39; Wed&#39; 我想得到2014.07.16&#39;这是下周四相对于2014.07.17&#39;。 这意味着如果$ string是&#39; 2014.07.21&#39;这是一个周一,返回日期将是&#39; 2014.07.24&#39;那是下周四相对于2014.07.21&#39; 我正在接受2014.07.31&#39;现在是下一个星期四到今天的日期。

如何获得下一个星期四相对于$ string(通过日期)

谢谢。

2 个答案:

答案 0 :(得分:2)

试试这个

$string = '2014.07.16';
$date = DateTime::createFromFormat("Y.m.d", $string);
$result = $date->format("D");
if ($result != 'Thu')
{
    $result2 = strtotime('next Thursday', strtotime($date->format("d-M-Y")));
    echo date('Y.m.d', $result2);
}

输出:2014.07.17

<强> Working Demo

答案 1 :(得分:0)

strtotime很聪明,可以使用各种参数。但是,您需要以不同于您使用的格式传递日期。只需更换。与 - 在将日期传递给strtotime之前:

$string = '2014.07.16';
$string = str_replace('.', '-', $string);

if (date('w', strtotime($string)) != 4) {
    $date = date('Y.m.d', strtotime($string . ' next thursday'));
    echo $date;
}

date(&#39; w&#39;)以整数形式返回星期几。使用它进行比较比使用字符串更好。