Gần đây tôi đã gặp phải một vấn đề lớn, vì tôi có một hệ thống trả tiền cho khách hàng hàng tuần.Đánh số tuần ISO-8601 so với số "Outlook" trong PHP
Như chúng ta đều biết, một năm có 52 tuần và có các tiêu chuẩn cho nó. Tôi đang sử dụng PHP aka ngày ('W') để có được số tuần từ một ngày, mà tính toán rằng theo tiêu chuẩn ISO-8601.
Dưới đây là một số tài liệu tham khảo:
Nhưng đây là vấn đề: Năm 2009 có 53 tuần. Có vẻ như qua lịch Gregorian trong vòng 400 năm, có 71 năm có 53 tuần. Đó là một điều tôi không biết, và có lẽ nhiều điều không tốt.
Theo Wikipedia:
2009-12-31 là 2009-W53-4 (ISO năm 2009 có 53 tuần, kéo dài theo năm dương lịch 2009, mà bắt đầu và kết thúc với Thứ năm, ở cả hai đầu với ba ngày).
và chức năng ngày trong PHP hoàn toàn tôn trọng nó.
Nếu bạn nhìn vào MS Outlook và hiển thị ngày trong tuần ở chế độ xem lịch, nó sẽ xuất hiện 52 tuần xem xét 28/12/2009 đến 03 JAN 2010 tuần 1. Đây có phải là tiêu chuẩn khác không? Tiêu chuẩn của Mỹ hay gì đó?
Nếu có thì tại sao PHP không thể hỗ trợ? Có ai làm một chức năng hỗ trợ điều này không?
Có đúng 53 tuần không? Chúng tôi có cả khách hàng châu Âu và Mỹ.
Câu hỏi thú vị. Tôi nhận thấy rằng Outlook có một tuần 53 vào năm 2011. Có vẻ như nó đang xác định "tuần 1" là tuần đầu tiên có chứa ngày 1 tháng 1. Vì tuần có thể bắt đầu vào Chủ Nhật hoặc Thứ Hai dựa trên cài đặt, nó thực sự có thể khác nhau người dùng. –
Tôi vừa thử nó. Outlook sẽ cho phép bạn chọn bất kỳ ngày nào là ngày bắt đầu tuần, và đánh số tuần chỉ bắt đầu với tuần có chứa Jan 1. Do đó có bảy lược đồ đánh số khác nhau có sẵn trong Outlook. –