2011-12-06 7 views
5

Bu yöntem line 1380 in the jQuery ui datepicker üzerindedir: Bu datepicker kodunda birçok yerde kullanılmaktadırBirisi neden jQuery UI Datepicker'da olduğunu açıklayabilir mi?

_daylightSavingAdjust: function(date) { 
    if (!date) { 
     return null; 
    } 
    date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); 
    return date; 
} 

. Bildiğim kadarıyla bu kod sadece saatler vardır herhangi bir tarih için 2 saat katacak gördüğünüz gibi> 12 aksi 0.

saat set benim konsolda denedim:

date = new Date(); 
console.log("" + date); 
date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); 
console.log("" + date); 

Ve benim :

Tue Dec 06 2011 18:36:06 GMT+0100 (CET) 
Tue Dec 06 2011 20:36:06 GMT+0100 (CET) 
+0

Sanırım, söylediği şeyin yaptığı şey, bunun bir sorun olduğu durumlarda gün ışığından yararlanma saatini ayarlar. Yine de yaşadığım yerde, günışığı tasarrufu sadece bir saat değil, iki değil mi? – adeneo

+0

Sorunuzdaki gerçek kod satırına bir bağlantı eklendi. Orada bir yorum var, ancak sorunu daha net hale getirmiyor. Bazı köşe durumlarında bir sonraki güne kadar arttırma tarihini tetiklemeye çalışıyor gibi görünüyorlar, ama ben gerçekten mantığı takip etmiyorum. Unutmayın, bu kod da <= 12 'olduğunda açık bir şekilde saat olarak "0" a ayarlanıyor. –

+0

Daha yakından baktıktan sonra, yöntemin kesinlikle tarihlerle kullanıldığını gördüm. Örneğin, datepicker.parseDate yönteminde, gün ışığından yeni bir tarih geçtikten sonra, değiştirilip değiştirilmediğini denetleyin. Eğer olduysa, bir hata ortaya çıkar. – disc0dancer

cevap

5

comment gerçekten biraz şifreli:

/* Handle switch to/from daylight saving. 
    Hours may be non-zero on daylight saving cut-over: 
    > 12 when midnight changeover, but then cannot generate 
    midnight datetime, so jump to 1AM, otherwise reset. 
    @param date (Date) the date to check 
    @return (Date) the corrected date */ 

Datepicker tarih nesneleri oluşturur Zamanı belirtmeden, seçilen tarihlerden itibaren, gece yarısı kullanılır. Bazı yerlerde, DST bir önceki gün saat 11'e geri dönen saat gece yarısı başladı.

Bu işlev, Doğru günü almak için saati iki saat ileri itip zorlamayacağını belirlemek için Date nesnesinin saatine bakar.