[PHP] Tính số thứ tự của 1 tuần trong năm

Hôm trước có một bạn hỏi tôi rằng, làm thế nào nhập 1 ngày và tính ngày đó thuộc tuần thứ mấy trong năm ? Một câu hỏi khá là hay. Tất cả chúng ta đều biết một năm thì có 52 tuần, nhưng tuần đầu tiên của năm có phải luôn luôn bắt đầu là ngày 01/01 ? Tôi sẽ minh họa câu trả lời đó bằng hình ảnh dưới đây.

[PHP] Week number in year

Các bạn thấy rằng ngày 01/01/2012 rơi vào ngày Chủ nhật và thuộc tuần thứ 52 của năm 2011, còn ngày 02/01/2012 mới được tính là ngày đầu tiên của tuần thứ nhất năm 2012. Như vậy, trong lập trình bạn phải có cách biết được chính xác ngày nào đó thuộc tuần thứ mấy trong năm mà không phải xem lịch.

Tôi đã viết 1 đoạn code nhỏ để giải quyết vấn đề trên, bạn có thể tham khảo và chỉnh sửa phù hợp với yêu cầu của mình.

<?php
// Xem ngày hiện tại thuộc tuần thứ mấy trong năm ?
$date = date('Y-m-d');
while (date('w', strtotime($date)) != 1) {
$tmp = strtotime('-1 day', strtotime($date));
$date = date('Y-m-d', $tmp);
}
$week = date('W', strtotime($date));
echo "Tuần thứ: " . $week ;
?>

Và kết quả là

Tuần thứ: 24

Hi vọng đoạn code trên sẽ giúp ích cho các bạn. Thâ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…

6 Responses

  1. Noname says:

    Hok cần phức tạp vậy đâu bạn ơi

    vậy la ok rồi.
    Thân

  2. TUan says:

    ko thay code dau ca, blog bi loi nhieu qua, fix lai di ban

    • Tấn Việt says:

      Hi Tuấn,

      Mình đã cập nhật code lại rồi, bạn tham khảo nhé. Mình mới thay theme cho blog nên code bị ảnh hưởng.

  3. Lê Ngọc Anh Vũ says:

    Chào anh,
    Anh xem lại giúp code hiển thị không đúng.
    Tuần này từ 28/12/2015 đến 03/01/2016 là tuần 1 của năm 2016, nhưng code hiển thị tuần thứ 53.\
    Cám ơn anh.

    • Lê Ngọc Anh Vũ says:

      Xin lỗi, em vừa coi lại, đúng là năm nay có 53 tuần 🙂 code vẫn đúng.

  4. hoangloc says:

    echo “tuan thu: ” . date(‘W’, time()) ; don gian ma