【发布时间】:2017-10-24 03:39:53
【问题描述】:
我有一个开始日期和结束日期。
我正在尝试每两周的所有星期二和星期三。
示例:
2017-05-23 (tu)
2017-05-24(我们)2017-06-06 (tu)
2017-06-07 (我们)
...
我想用 PHP 做什么:
$start = new FrozenTime('2017-05-23'); // Date is in this format 'cause I'll save into DB
$endOfYear = $start->endOfYear();
$perWeek = new \DateInterval('P14D'); // I want every 2 weeks
$periodPerWeek = new \DatePeriod($start, $perWeek, $endOfYear);
$days = ['2', '3']; // Tuesday and Wednesday
foreach ($periodPerWeek as $value) {
if (in_array($value->format('N'), $days)) {
$test[] = [
'start' => $value
];
}
}
结果:
"start": "2017-05-23",
"start": "2017-06-06",
"start": "2017-06-20",
数组中只有一个日期。我也需要得到星期三的!我该怎么做?
重要提示:
开始日期并不总是星期二。用户可以选择他想要的工作日。
例如: 用户可以每两周选择每个 SU、WE 和 FR。
// start date example: 2017-05-20 (saturday)
// output should be like:
2017-05-22 (SU)
2017-05-24 (WE)
2017-05-26 (FR)
2017-06-05 (SU)
2017-06-07 (WE)
2017-06-09 (FR)
...
【问题讨论】:
-
您是指周二和周三还是周三和周四?
-
你的星期三和星期四是从后到前的 :)
-
@fubar 更新问题!
-
@Victor Sooo,您现在是说希望从开始日期到年底的每个星期日、星期三和星期五都在一个单一的一维数组中吗?每两周的周二和周三发生了什么?你确定你知道你的要求吗?
标签: php arrays date date-range dateinterval