PHP每周三选择一次

时间:2012-05-02 19:31:30

标签: php date

我需要帮助从2012年5月2日开始每隔一个星期三选择一次。下面的代码选择从当前周开始的每隔一个星期三。但我需要设定开始周。我熟悉PHP,但不熟悉php日期。所以请尽可能具体。 我发现了这个:

$number_of_dates = 10;

for ($i = 0; $i < $number_of_dates; $i++) {
   echo date('m-d-Y', strtotime('Wednesday +' . ($i * 2) . ' weeks')). "<br>".PHP_EOL;
}

4 个答案:

答案 0 :(得分:3)

使用mktime创建开始日期并将其作为第二个参数传递给strtotime,以便从那里开始计数:

$startDate = mktime(0, 0, 0, 5, 2, 2012); // May 2, 2012
for ($i = 0; $i < $number_of_dates; $i++) {
   $date = strtotime('Wednesday +' . ($i * 2) . ' weeks', $startDate);
   echo date('m-d-Y', $date). "<br>".PHP_EOL;
}

See it in action

答案 1 :(得分:1)

在字符串中给它一个日期,而不是“星期三”(选择下周三),写一下:

strtotime('20120502 +' . ($i * 2) . ' weeks'))

选择该日期。 (格式为yyyymmdd)。

答案 2 :(得分:0)

如果您使用的是PHP 5.2.0或更高版本,则可以通过以下方式轻松完成:

$date = new DateTime('2006-05-02');
for ($i=0; $i<10; $i++) {
   echo $date->format('m-d-Y').'<br/>'.PHP_EOL;
   $date->modify('+1 week');
}

答案 3 :(得分:0)

您还可以使用DatePeriodDateInterval类来简化生活。

标准免责声明:上述两个类需要 PHP&gt; = 5.3.0。

$number_of_dates = 10;

$start_date = new DateTime("5/2/12");
$interval   = DateInterval::createFromDateString("second wednesday");
$period     = new DatePeriod($start_date, $interval, $number_of_dates - 1);

foreach ($period as $date) {
    echo $date->format("m-d-Y") . "<br>" . PHP_EOL;
}