[PHP] Nhập 1 ngày bất kỳ và in ra danh sách của tuần chứa ngày đó

Bài viết hôm nay sẽ kết thúc loạt bài liên quan đến tính toán ngày tháng trong PHP, nội dung chính là nhập 1 ngày bất kỳ và in ra danh sách của tuần chứa ngày đó. Đoạn code mà tôi sử dụng như sau:

<?php
function week_from_monday($date) {
list($day, $month, $year) = explode("-", $date);
$wkday = date('l',mktime('0','0','0', $month, $day, $year));
switch($wkday) {
case 'Monday': $numDaysToMon = 0; break;
case 'Tuesday': $numDaysToMon = 1; break;
case 'Wednesday': $numDaysToMon = 2; break;
case 'Thursday': $numDaysToMon = 3; break;
case 'Friday': $numDaysToMon = 4; break;
case 'Saturday': $numDaysToMon = 5; break;
case 'Sunday': $numDaysToMon = 6; break;
}
$monday = mktime('0','0','0', $month, $day-$numDaysToMon, $year);
$seconds_in_a_day = 86400;
for ($i=0; $i<7; $i++) {
$dates[$i] = date('Y-m-d',$monday+($seconds_in_a_day*$i));
}
return $dates;
}
// Kiểm tra ngày hiện tại
$demo = week_from_monday(date('d-m-Y'));
var_dump($demo);
?>

Và kết quả

array
0 => string '2012-06-18' (length=10)
1 => string '2012-06-19' (length=10)
2 => string '2012-06-20' (length=10)
3 => string '2012-06-21' (length=10)
4 => string '2012-06-22' (length=10)
5 => string '2012-06-23' (length=10)
6 => string '2012-06-24' (length=10)

Với kết quả trả về như trên thì các phần tử mảng lần lượt từ 0 đến 6 tương ứng với Thứ Hai đến Chủ Nhật. Hi vọng bài viết này sẽ giúp ích cho các bạn.

Tấn Việt

Tôi lập trang web này để thỏa mãn sở thích viết cái gì đó vui vui khi rãnh rỗi và đồng thời cũng chia sẻ những gì tôi biết hoặc đọc đâu đó trên mạng về Lập trình web. Tôi hi vọng những bài viết này sẽ giúp ích cho các bạn. Thân ái!

You may also like…