Có một hành vi kỳ lạ của phương pháp đặt ngày FireFox 34 setMinutes để đặt 60 phút cho năm 2008 01 tháng 1 23 giờ 00 phút 00 giây. Dự kiến sẽ tăng ngày nhưng điều này không.FireFox 34 setMinutes BUG?
var initDate = [2008, 0, 1];
var d = new Date(initDate[0], initDate[1], initDate[2]);
document.body.innerHTML += d + "<br/>";
d.setHours(23);
d.setMinutes(60);
document.body.innerHTML += d + "<br/>";
Các FireFox 34 kết quả là:
Tue Jan 01 2008 00:00:00 GMT+0300 (Russia TZ 2 Standard Time)
Tue Jan 01 2008 23:00:00 GMT+0300 (Russia TZ 2 Standard Time)
thay vì Chrome 39.0.2171.71 m:
Tue Jan 01 2008 00:00:00 GMT+0300 (Russia TZ 2 Standard Time)
Wed Jan 02 2008 01:00:00 GMT+0400 (Russia TZ 2 Daylight Time)
Nếu tôi thay đổi năm 2006 kết quả là ok:
Sun Jan 01 2006 00:00:00 GMT+0300 (Russia TZ 2 Standard Time)
Mon Jan 02 2006 00:00:00 GMT+0300 (Russia TZ 2 Standard Time)
http://jsfiddle.net/7dp8xvf8/1/
Đây có phải là lỗi không?
CẬP NHẬT: IE 8 và 9 có cùng hành vi, nhưng 10-11 là ok.
Có một điểm rõ ràng là Chrome đã thay đổi múi giờ nhưng FireFox không có; Tôi cho rằng bạn đang ở vị trí đó, có bất kỳ thay đổi đáng kể nào vào thời điểm đó không? Tôi đã không thể tìm thấy bất cứ điều gì trực tuyến xung quanh ngày đó. –
Bạn thấy hành vi nào nếu bạn 'setMinutes' nhỏ hơn' 60'? (ví dụ: 'd.setMinutes (58); 'sản xuất là gì?) Tôi không nghĩ rằng tôi có thể kiểm tra tập lệnh của bạn mà không thay đổi múi giờ/vị trí của trình duyệt của tôi. – apsillers
@AdrianWragg Tôi đang ở vị trí đó nhưng trước khi cập nhật FireFox mới nhất, sự cố vẫn chưa xuất hiện. –