echo date("W",strtotime('2010-01-01'));
Bu 53 çıktılar. I çıkışı 1 olarak beklenebilir. Başkasının bu davranışı onaylamak, ya da belki neden açıklayabilir misiniz? Ben bunun üzerine bir hata raporu bulamadı.
Bu hiç bir hata değildir, bu davranış bekleniyor. PHP'nin gelen Date Page:
W: Yılın ISO-8601 hafta numarası, hafta Pazartesi günü başlayan
1 Ocak 2010, Cuma günü düştü, bu yüzden onun hafta sayısı 2009 yılının 53. haftasında parçasıdır. 4 Ocak 2010 1. hafta olurdu yapma, 2009 ait olacaktır.
Aralık ayında başlayan ve Ocak ayında biten bir hafta sonraki yıl günlerinin en yalan yıla aittir. Bu nedenle Aralık ayında en az 4 gün ile bir hafta bu yılın son haftası ve Ocak ayında en az 4 gün ile bir hafta yeni yılda ilk hafta.
Yani ... Bir yılın geçen hafta hep Aralık 28 günü içeriyor. Belirli bir yıl o gün tarih ("W") alırsan her zaman o yıl için hafta sayısını doğru olsun. Bu tanımın diğer ucu Ocak 4 gün her zaman, bir yılın ilk haftasında yatıyor olmasıdır.
Bu ISO-8601 week number of year döndürür.
Dan Wikipedia:
Haftanın 01 karşılıklı eşdeğer açıklamaları vardır:
- içinde yılın ilk Perşembe (resmi ISO tanımı) ile hafta
- Bunun 4 Ocak ile hafta
- çoğunluğu (dört ya da daha fazla), günlerinin başlangıç yılda ve ilk hafta
- 4 Ocak - haftalık dönemde 29 Aralık olarak Pazartesi ile başlayan.
2010-01-01 bu yana koşulların Cuma, sigara karşılanmaktadır.