2011-12-22 13 views
18

डेटटाइम क्लास में कुछ आसान तरीके हैं और देशी पीपी डेट फ़ंक्शंस जैसे strtotime, mktime और strftime (और अधिक) से बेहतर दिखते हैं। लेकिन क्या कोई कमी या कोई कारण है कि मुझे इसका उपयोग क्यों नहीं करना चाहिए?डेटटाइम क्लास बनाम देशी PHP दिनांक-फ़ंक्शंस

एकमात्र कारण यह है कि मैं सोच सकता हूं कि एक समारोह का उपयोग करने से कक्षा के पूरे उदाहरण को बनाना अधिक महंगा हो सकता है।

  • क्या आप इससे सहमत होंगे?
  • क्या यह हमारे लिए सरल सामान के लिए डेटटाइम ऑब्जेक्ट पर बिल्कुल समझ में आता है?
  • क्या कोई अन्य कमी है?

यह हर दो विकल्पों के बीच स्विच करने में थोड़ा उलझन में लगता है, इसलिए मैं यह स्पष्ट करना चाहता हूं कि मुझे क्या करना चाहिए।

दो मेरे निर्णय के लिए उदाहरण होगा:

  • एक स्थानीय मूल्य
  • के लिए एक तिथि परिवर्तित दो तिथियों

उत्तर

36

के बीच समय की गणना कर रहा है, तो अपनी चिंता है कि एक वर्ग उदाहरण बनाकर है महंगा और यह प्रदर्शन में बाधा डालता है, तो मुझे डर है कि आप गलत पेड़ पर भौंक रहे हैं। किसी को कभी भी यह विचार नहीं करना चाहिए कि सिद्ध ओओ दृष्टिकोण का उपयोग करना है, जहां यह समझ में आता है। यदि कुछ दिनांक गणना करने के लिए डेटटाइम कक्षा का उपयोग करना समझ में आता है, तो इसका उपयोग करें। यह उस बिंदु पर महंगा नहीं है जहां आपका ऐप इसे महसूस करेगा, जब तक कि आप कुछ पागल नहीं करते हैं जैसे कि 1 मिलियन डेटटाइम ऑब्जेक्ट्स बनाना।

कारण टाइमटाइम महान क्यों है क्योंकि यह ऑब्जेक्ट बनाते समय समय क्षेत्र निर्दिष्ट करके डेलाइट बचत की चिंता को कम करता है। तिथियों के बीच अंतर प्राप्त करना या विभिन्न वस्तुओं के बीच अंतराल प्राप्त करना भी आसान है। यह मूल रूप से चिंता और कोडिंग की मात्रा को कम करता है (लेकिन मैं स्वीकार करता हूं कि यह कभी-कभी गलत होता है, उम्मीद है कि इसे PHP की 5.4 रिलीज में संबोधित किया जाएगा)।

नीचे की रेखा - मैं हमेशा इसका उपयोग करता हूं।

+5

प्लस तिथि सीमा, 32-बिट PHP वातावरण में भी, एक पालीबायोलॉजिस्ट या ब्रह्माण्ड की शुरुआत या अंत का अध्ययन करने वाले ब्रह्माण्ड विज्ञानी को रखने के लिए पर्याप्त है –

+0

मुझे डेटटाइम की 'आसानता' दिखाई देती है, लेकिन आप इसका भी उपयोग करेंगे यह सरल चीजों के लिए है जैसे मैंने अभी अपने प्रश्न में जोड़ा है? – Anonymous

+4

मैं चाहता हूं, क्योंकि चलिए 'एमकेटाइम' या 'स्ट्रेटोटाइम' फ़ंक्शंस लेते हैं - उन्हें दिन, वर्ष, महीना, घंटा इत्यादि का प्रतिनिधित्व करने वाले पैरामीटर के कुछ क्रम की आवश्यकता होती है। 'डेटटाइम' के साथ मैं ऑब्जेक्ट बना सकता हूं जैसे मनमानी पैरामीटर '$ date = डेटटाइम :: createFromFormat ('एम एच: एस डी-वाई', $ weird_user_input); 'जिसे यूनिक्स टाइमस्टैम्प या जो भी अन्य दिनांक प्रारूप मैं चाहता हूं उसे स्वरूपित किया जा सकता है। ऑब्जेक्ट बनाने के दौरान मैं तुरंत समय क्षेत्र निर्दिष्ट कर सकता हूं। तो हाँ, मैं निश्चित रूप से इसका उपयोग करता हूं क्योंकि मैं वास्तव में नहीं देखता कि प्रक्रियात्मक तरीके से मुझे बेहतर सहायता मिलेगी। –

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