Tôi đã gặp phải sự cố thú vị khi sử dụng chức năng date()
của PHP. Đã không có bất kỳ may mắn định vị một cuộc thảo luận về điều này trên SO hoặc sử dụng Google, nhưng có thể ai đó khác đã gặp phải vấn đề tương tự trước đây?Nhận năm và tuần trong năm từ ngày PHP() khi tuần kéo dài hai năm
Tôi đang cố gắng đạt được NĂM và TUẦN NĂM cho một dấu thời gian cụ thể. Đây là mã tôi đang sử dụng:
date("Y-\WW");
Những kết quả đầu ra như ngày nay một cách chính xác: 2011-W39
.
Vấn đề là khi cung cấp dấu thời gian, nếu dấu thời gian được đề cập là, vào ngày 3 tháng 1 năm 2011 (thực sự là một phần của "Tuần thứ 52 của năm 2010". PHP trả về đúng W52, nhưng nó cũng trả về 2011 là năm nay, thay vì 2010.
date("Y-\WW", 1294016400);
Đầu ra: 2011-W52
Bất kỳ ý tưởng về làm thế nào để giải quyết vấn đề này, tôi nên lưu ý rằng mặc dù trong trường hợp này nó sẽ là dễ dàng chỉ cần so sánh đó? strtotime()
của đầu ra lớn hơnhiện tạivà điều chỉnh, nhưng tôi cần một giải pháp cũng sẽ hoạt động trong những năm trước (ví dụ: nếu điều tương tự xảy ra vào ngày 3 tháng 1 năm 2010).
tôi chỉ thử nghiệm [ 'date ("Y-\ WW", 1294016400)' trong IDEOne và tôi nhận được '2011-W01 '] (http://ideone.com/HWyeo). – JRL
Đó có thể là múi giờ hoặc ngôn ngữ địa phương. Tôi đã trả lời câu hỏi dưới đây, tôi nên đã sử dụng 'o' mới được thêm thay vì' Y'. –