我需要帮助从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;
}
答案 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;
}
答案 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)
您还可以使用DatePeriod
和DateInterval
类来简化生活。
标准免责声明:上述两个类需要 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;
}