2013-02-12 25 views
15

Safari trên OSX tin rằng ngày 6 tháng 10 năm 2013 là Thứ Bảy ở Úc. Nó không phải, nó thực sự là một chủ nhật.Tại sao Safari bị nhầm lẫn về Date.getDay() cho DST bắt đầu ở Sydney, múi giờ Aus?

Để nhân rộng vấn đề này, chỉ cần đặt múi giờ của bạn thành Sydney-Australia, mở bảng điều khiển dành cho nhà phát triển trong Safari và nhập ngày mới ("2013/10/06"). Bạn sẽ có được điều này:

enter image description here

Bây giờ thay đổi đến Seattle-Mỹ và bạn sẽ có được điều này:

enter image description here

vấn đề này cũng xảy ra đối với Melbourne-Úc nhưng không cho các thành phố tiếp tục phía bắc như Brisbane (phù hợp với zoning for Australian DST), hoặc một số thành phố khác mà tôi đã thử nghiệm trên khắp thế giới.

Hiện tại, điều này xảy ra vào ngày 6 tháng 10 năm 2013 là start of daylight savings time in Sydney.. Và cùng một sai lầm được thực hiện cho các ngày bắt đầu DST khác trong những năm khác. Dường như không có vấn đề gì với ngày kết thúc DST. Dường như không có vấn đề gì đối với ngày bắt đầu DST trong múi giờ PDT. Ngoài ra, Chrome và Firefox không thể hiện vấn đề này.

Tôi đã thử nghiệm hầu hết điều này trên hai máy Mac khác nhau, một trên Snow Leopard với Safari 5.1.7 và một trên Lion với Safari 6.0.2.

Vì vậy, câu hỏi là - đây có phải là lỗi hoặc có lý do hợp lý nào cho điều này không?

+1

Cùng hành vi trên Safari dưới Win7 cho tôi – koopajah

+0

Hãy thử: 'd = new Date (" 2013-10 -06 "); d.setMinutes (d.getMinutes() + d.getTimezoneOffset()) ' –

+0

hack của tôi là sử dụng' ngày mới (datestring + "12:00"). getDay() 'đặt thời gian kiên cố vào giữa ngày cách xa tất cả các công tắc DST (http://www.worldtimezone.com/daylight.html). – jlarson

Trả lời

6

Điều này thực sự cần được coi là lỗi - Nói về mặt kỹ thuật DST tại Sydney bắt đầu vào ngày 2013/10/06 lúc 2 giờ sáng, vì vậy 2AM sau đó trở thành 3AM (http://www.timeanddate.com/worldclock/clockchange.html?n=240). Nó xuất hiện Safari trong trường hợp này là suy nghĩ bạn có nghĩa là 2013/10/06 lúc nửa đêm - và sau đó sẽ trở lại 1 giờ đến 11 giờ tối ngày hôm trước. Điều này thậm chí không có ý nghĩa bởi vì lúc 2:00 đồng hồ được cho là phải đi tiếp một giờ.

Tôi muốn giới thiệu gửi báo cáo lỗi cho điều này - vì đầu ra là rất rõ ràng là sai

https://developer.apple.com/bugreporter/

+1

Yep, tôi đã gửi báo cáo lỗi. Lý do lớn nhất tôi đặt nó trên SO là để bất kỳ Dev khác cố gắng tìm ra nó có thể có một thời gian dễ dàng hơn để chạy vào thông tin này ... – jlarson

+0

@ jlarson Bạn có bất kỳ thông tin từ Apple khi lỗi này sẽ được cố định? Tôi có thể tái tạo nó trên Safari 7.1 và 8.0. Cảm ơn. – dherbolt

+0

@dherbolt - nope – jlarson

Các vấn đề liên quan