【问题标题】:PHP Get recurring dates for specific weekdayPHP 获取特定工作日的重复日期
【发布时间】:2017-02-15 15:46:08
【问题描述】:

如何获取一天中所选周的所有重复日期?

例如,今天是 2017 年 2 月 15 日星期三,如果我选择 Thursday 如何从下星期四开始获取接下来的 5 个日期,例如:

$dates = array(
[0] => "16/02/2017",
[1] => "23/02/2017",
[2] => "02/03/2017",
[3] => "09/03/2017",
[4] => "16/03/2017");

如果我选择星期二,则获取从 2017 年 2 月 21 日开始的日期,即下周二

【问题讨论】:

  • 您应该考虑使用 \DateTime 对象和使用一周的 \DateInterval 的 add 方法。

标签: php date


【解决方案1】:

您可以使用strtotime 生成此日期的时间戳,date 函数可以生成实际日期。

<?php

    // Array for dates
    $dates = [];

    // Get next thursday
    $date = strtotime('thursday');
    $dates[] = $date;

    // Get the next four
    for ($i = 0; $i < 4; $i++)
    {
        $date = strtotime('+1 week', $date);
        $dates[] = $date;
    }

    // Echo dates
    foreach ($dates as $date)
        echo date('Y-m-d', $date);

【讨论】:

    【解决方案2】:

    看看this post

    使用这个想法:

    //Get First Thursday
    $date = new DateTime();
    $date->modify('next thursday');
    
    echo "<br/>Starting Thursday: " . $date->format('d/m/Y');
    
    //Loop over next 4 Thursdays
    for($i = 2; $i <= 5; $i++)
    {
        $date->modify('+7 days');
        echo "<br/>Thursday " . $i . ": " . $date->format('d/m/Y');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 2018-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多