php将x周添加到某个日期,然后查找下一个给定日期

时间:2015-07-15 08:23:59

标签: php

我可以将x周添加到我的日期

//$ultima_azione <--- 2015/07/15
//$data['intervallo'] <---- 5

$mydate = date("Y-m-d",strtotime($ultima_azione." +".$data['intervallo']." weeks"));

现在我怎么能从那一周开始一天 例如:

//$mydate + "next Monday" -----> final date
如果今天是星期一,并且我增加几周跳到另一个星期一然后我选择下一个星期一那周就不会改变

3 个答案:

答案 0 :(得分:1)

最简单的方法是使用strtotime。它可以根据delta的文本表示进行日期计算:

$mydate = strtotime('+3 weeks');

它还接受第二个参数,这是一个从进行计算时开始的时间戳,所以在你得到几周的偏移后,你可以将新的日期传递给第二个计算:

// Get three weeks from 'now' (no explicit time given)
$mydate = strtotime('+3 weeks');

// Get the Monday after that.
$mydate = strtotime('next Monday', $mydate);

有关可以使用的符号的更多示例,请参阅strtotime documentation

答案 1 :(得分:1)

你在找这样的东西吗?

$today = time();

$weeks = 2;
// timestamp 2 weeks from now
$futureWeeks = strtotime("+ ".$weeks." weeks");
// the next monday after the timestamp date
$futureMonday = strtotime("next monday",$futureWeeks);
echo date("Y-m-d", $futureMonday);
// or in one line
echo date("Y-m-d", strtotime("next monday", strtotime("+ ".$weeks." weeks")));

PHP使用unix时间戳进行日期计算。使用时间戳作为可选的第二个参数,用作date()strtotime()。这用于格式化和计算的参考。如果没有时间戳传递给函数,则使用当前时间戳(time())。

答案 2 :(得分:0)

我在这里有答案。这将显示每2周的下一个星期三,起始的第一个日期是10日。

我还添加了预计交货时间,该日期将在该日期之后的6周。

We will be placing our next order for this on:
    <?php
    $date = '2020/05/26';
    $weeks = 2;
    $dateTime = DateTime::createFromFormat('Y/m/d', $date);
    $dateTime->add(DateInterval::createFromDateString($weeks . ' weeks'));
    $dateTime->modify('wednesday');
    echo $dateTime->format('d/m/Y');
    ?>

Expected delivery for the next order will be:
    <?php
    $date = '2020/05/26';
    $weeks = 2;
    $dateTime = DateTime::createFromFormat('Y/m/d', $date);
    $dateTime->add(DateInterval::createFromDateString($weeks . ' weeks'));
    $dateTime->modify('+42 days next wednesday');
    echo $dateTime->format('d/m/Y');
    ?>

如果任何人都可以确认这是正确的,那就太好了