Filename | Lấy khoảng thời gian một tuần có chứa ngày cho trước |
Permission | rw-r--r-- |
Author | Unknown |
Date and Time | 03:18 |
Label | php-mysql |
Action |
Cho ngày cụ thể D. Tìm khoảng thời gian 1 tuần Dx - Dy sao cho D thuộc trong khoảng thời gian Dx - Dy. Biết Dx là ngày thứ ba (Tuesday).
Giải:
1 tuần có 7 ngày
Chủ nhật | Thứ hai | Thứ ba | Thứ tư | Thứ năm | Thứ sáu | Thứ bẩy |
Do khoảng thời gian là 1 tuần, Dx là thứ ba nên Dy là thứ hai.
Nhìn vào bảng trên, ta nhận thấy:
- Nếu D là ngày Thứ ba, Thứ tư, Thứ năm, Thứ sáu, Thứ bẩy thì Dx sẽ là Thứ ba trong bảng. Dy sẽ là Thứ hai - 1 tuần sau của Thứ hai trong bảng.
- Nếu D là ngày Chủ nhật hoặc Thứ hai thì Dy sẽ là Thứ hai trong bảng. Theo đó Dx sẽ là Thứ ba - 1 tuần trước của Thứ ba trong bảng.
Code PHP:
$d = time(); // CURRENT TIME
$dayIndex = date('w', $d); // Trả về số thứ tự của ngày trong tuần, bắt đầu từ 0 là Chủ nhật
if ($dayIndex >= 2) { // 2 là số thứ tự của Thứ ba
$dx= strtotime(date('Y-m-d 00:00:00', $d- ($dayIndex -2) *24*3600));
$dy= strtotime(date('Y-m-d 23:59:59', $dx+6*24*3600));
} else {
$dy= strtotime(date('Y-m-d 00:00:00', $d+ (1-$dayIndex ) *24*3600)); // 1 là số thứ tự của Thứ hai
$dx= strtotime(date('Y-m-d 23:59:59', $dy-6*24*3600));
}
echo date('Y-m-d', $dx) . ' - ' . date('Y-m-d', $dy);
0 nhận xét:
Đăng nhận xét