Tôi muốn chia tháng hiện tại thành các tuần như ngày đầu tiên đến thứ bảy và sau đó chủ nhật đến thứ bảy tới. Ví dụ: tháng 5, Vì vậy, tôi muốn chia nhỏ nhưTách tháng hiện tại theo tuần trong php
2016-05-01 to 2016-05-07
2016-05-08 to 2016-05-14
2016-05-15 to 2016-05-21
2016-05-22 to 2016-05-28
2016-05-29 to 2016-05-31
nếu tôi thử mã bên dưới, tôi không nhận được kết quả chính xác.
<?php
$start_date = date('Y-m-d', strtotime('2016-06-01'));
$end_date = date('Y-m-d', strtotime('2016-06-30'));
$i=1;
for($date = $start_date; $date <= $end_date; $date = date('Y-m-d', strtotime($date. ' + 7 days'))) {
echo getWeekDates($date, $start_date, $end_date, $i);
echo "\n";
$i++;
}
function getWeekDates($date, $start_date, $end_date, $i) {
$week = date('W', strtotime($date));
$year = date('Y', strtotime($date));
$from = date("Y-m-d", strtotime("{$year}-W{$week}+1"));
if($from < $start_date) $from = $start_date;
$to = date("Y-m-d", strtotime("{$year}-W{$week}-7"));
if($to > $end_date) $to = $end_date;
echo $from." - ".$to.'<br>';
}
?>
tôi đã nhận như
2016-05-01 - 2016-05-01
2016-05-01 - 2016-05-08
2016-05-08 - 2016-05-15
2016-05-15 - 2016-05-22
2016-05-22 - 2016-05-29
Trong vòng lặp for, trong khi kiểm tra thiết lập cuối cùng của ngày, conditon nhận thất bại .so nó không tính toán 30,31.
Tôi có thể làm điều đó bằng cách nào?
có thể đây là vấn đề W - Tôi Số tuần SO-8601 trong tuần (tuần bắt đầu từ thứ Hai) – JYoThI