2011-12-06 10 views
5

इस विधि line 1380 in the jQuery ui datepicker पर है:कोई बता सकता है कि यह jQuery UI Datepicker में क्यों है?

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

यह datepicker कोड में कई स्थानों पर किया जाता है। जहां तक ​​मैं देख सकता हूँ इस कोड को कुछ ही घंटों है कि किसी भी तारीख को 2 घंटे जोड़ देगा> 12 अन्यथा 0.

घंटे सेट मैं अपने कंसोल में इसे करने की कोशिश:

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

और मैं मिल गया :

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

मैं अनुमान लगा रहा हूं कि यह जो करता है वह करता है, उदाहरण के लिए डेलाइट बचत के लिए समय समायोजित करता है जहां यह एक मुद्दा है। जहां मैं रहता हूं, डेलाइट बचत केवल एक घंटा है, दो नहीं? – adeneo

+0

आपके प्रश्न में कोड की वास्तविक लाइन के लिए एक लिंक जोड़ा गया। वहां एक टिप्पणी है, लेकिन यह इस मुद्दे को पूरी तरह स्पष्ट नहीं बनाती है। ऐसा लगता है कि वे कुछ कोने मामलों में अगले दिन बढ़ने की तारीख को ट्रिगर करने की कोशिश कर रहे हैं, लेकिन मैं वास्तव में तर्क का पालन नहीं कर रहा हूं। आपको याद है, वह कोड स्पष्ट रूप से '0'' पर घंटे सेट कर रहा है जब '<= 12'। –

+0

नज़दीकी रूप से देखने के बाद मैंने पाया कि विधि का उपयोग सख्ती से तारीखों के साथ किया जाता है। Datepicker.parseDate विधि में, उदाहरण के लिए, डेलाइट सेविंग एडजस्ट करने के लिए एक नई तारीख को पार करने के बाद इसे बदलने के लिए चेक किया जाता है या नहीं। अगर ऐसा होता है, तो एक त्रुटि उठाई जाती है। – disc0dancer

उत्तर

5

टिप्पणी वास्तव में एक सा गुप्त है:

/* 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 में तारीख वस्तुओं बनाता है समय निर्दिष्ट किए बिना चुने गए तिथियों से बारीक से - तो मध्यरात्रि का उपयोग किया जाता है। कुछ स्थानों पर, डीएसटी मध्यरात्रि में आती है जो पिछले दिन 11 पीएम तक वापस फेंकता है।

तो यह फ़ंक्शन दिनांक ऑब्जेक्ट के घंटे को यह निर्धारित करने के लिए देखता है कि सही दिन प्राप्त करने के लिए उसे दो घंटे तक आगे बढ़ाना है या नहीं।

संबंधित मुद्दे