[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.