2010-05-14 38 views
52

मैं सोच रहा था कि क्या कोई ऑब्जेक्ट विशेष रूप से जावास्क्रिप्ट में एक दिनांक है या नहीं। isType तिथि के लिए ऑब्जेक्ट देता है, जो इस परिदृश्य के लिए पर्याप्त नहीं है। कोई विचार? धन्यवाद!क्या यह जांचने का कोई तरीका है कि कोई चर जावास्क्रिप्ट में दिनांक है या नहीं?

उत्तर

103

instanceof

उपयोग
(myvar instanceof Date) // returns true or false 
+7

यह * ज्यादातर मामलों * के लिए काम करेंगे { // मैं इसे एक तिथि की तरह व्यवहार करेंगे}, लेकिन यह बहु फ्रेम पर असफल हो जायेगी डोम वातावरण, [इस आलेख] पर एक नज़र डालें (http://perfectionkills.com/instanceof-cononsidered-harmful-or-how-to-write-a-robust-isarray/)। – CMS

+1

मैंने इसे "अमान्य तिथि" के साथ परीक्षण किया और यह सच हो गया !! – Roshdy

+0

यह मेरे मामले में अपेक्षित काम नहीं कर रहा है जहां मैंने दिनांक फ़ील्ड में DHTMLX कैलेंडर प्रकार का उपयोग किया है। – lnepal

30

Object.prototype.toString.call(obj) === "[object Date]" हर मामले में काम करेंगे, और obj instanceof Date केवल एक ही दृश्य उदाहरण (window) से तारीख वस्तुओं में काम करेंगे।

+0

हम्म यह काम नहीं करेगा यदि आपके पास तिथि से विरासत में कुछ है, है ना? – Claudiu

+0

इस प्रकार एक्सएस जेएस करता है। अन्य ढांचे के बारे में निश्चित नहीं है, लेकिन मैं यही देखता हूं। –

+2

@ क्लाउडियो: नहीं, लेकिन ईमानदारी से, मुझे लगता है कि आपको कभी भी ऑब्जेक्ट इंस्टेंस बनाने की आवश्यकता नहीं होगी जो 'डेट.प्रोटोटाइप' से प्राप्त होता है ..., @bmoeskau, यह ऑब्जेक्ट के * प्रकार * का पता लगाने का सबसे सुरक्षित तरीका है 'ऐरे', 'रेगेएक्सपी', 'दिनांक', आदि जैसे अंतर्निर्मित रचनाकारों द्वारा बनाया गया ... अन्य ढांचे, जैसे jQuery का उपयोग [ऐरे' ऑब्जेक्ट्स का पता लगाने के लिए] (http://api.jquery.com/ jQuery.isArray /), [प्रोटोटाइप] (http://www.prototypejs.org/api/object/isstring) इसके लिए भी इसका उपयोग करते हैं और लिपटे आदिम मूल्यों का पता लगाने के लिए, क्योंकि उन रैपर ऑब्जेक्ट्स हैं, उदाहरण के लिए 'टाइपो नई स्ट्रिंग ("") ==' ऑब्जेक्ट ';' और ओपेरा का पता लगाने के लिए भी। – CMS

0

अगर (obj & & obj.getUTCDay)

+0

यदि आपके पास पूरी तरह से असंबंधित ऑब्जेक्ट पर "getUTCDay" नामक एक समान विधि होती है तो यह 'ओबीजे' के लिए सच हो जाएगी, भले ही यह दिनांक न हो। –

+0

या अधिक संभावना है, यदि कोई * * के बाद * आप अपने कोड बेस में कहीं भी GetUTCDay विधि लिखते हैं, तो उन्हें किसी बिंदु पर डीबगिंग का एक अच्छा लंबा दोपहर होगा;) –

-3
if (parseDate("datestring")) 
+1

मुझे लगता है कि आप महसूस करते हैं कि यह वही नहीं है एक तिथि वस्तु प्रकार, जो सवाल प्रतीत होता है? –

+0

ओह !! मैंने सवाल =/मेरे बुरे गलत समझा – GerManson

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

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