PHP में तिथि और समय के साथ उन्नत कार्य | पूरी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP में तिथि और समय के साथ उन्नत कार्य

\n\n

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

\n\n

यह सामग्री उन डेवलपर्स के लिए है जो PHP की मूल बातों से परिचित हैं, लेकिन अपने ज्ञान को गहरा करना चाहते हैं। हम समय क्षेत्रों के साथ काम करना, अंतरालों को जोड़ना और घटाना, तिथियों की तुलना करना, और लोकप्रिय Carbon लाइब्रेरी से परिचित होंगे।

\n\n

1. DateTime और DateTimeZone क्लास: सब कुछ की नींव

\n\n

प्रक्रियात्मक फंक्शन पर निर्भर रहने के बजाय, आधुनिक PHP ऑब्जेक्ट-ओरिएंटेड DateTime क्लास का उपयोग करने की सलाह देता है। यह तिथि और समय से संबंधित सभी तर्क को समाहित करता है, जिससे कोड अधिक पढ़ने योग्य और सुरक्षित हो जाता है।

\n\n

DateTime का मुख्य लाभ DateTimeZone ऑब्जेक्ट के माध्यम से किसी विशिष्ट समय क्षेत्र से जुड़ने की क्षमता है। यह विभिन्न क्षेत्रों में स्थित सर्वरों के साथ काम करते समय "फ्लोटिंग" समय की समस्या को हल करता है।

\n\n
<?php\n// मास्को के लिए समय क्षेत्र ऑब्जेक्ट बनाएं\n$timezone = new DateTimeZone('Asia/Kolkata');\n\n// समय और समय क्षेत्र निर्दिष्ट करके DateTime ऑब्जेक्ट बनाएं\n$date = new DateTime('2024-12-25 10:00:00', $timezone);\n\necho $date->format('Y-m-d H:i:s'); // आउटपुट: 2024-12-25 10:00:00\n?>
\n\n

यदि समय क्षेत्र निर्दिष्ट नहीं है, तो PHP सर्वर सेटिंग्स (date.timezone php.ini में) का उपयोग करता है। हालांकि, पोर्टेबल कोड के लिए इसे स्पष्ट रूप से सेट करना हमेशा बेहतर होता है। सभी उपलब्ध समय क्षेत्रों की सूची DateTimeZone::listIdentifiers() से प्राप्त की जा सकती है।

\n\n

2. तिथियों में हेरफेर: DateInterval और DatePeriod

\n\n

जब दिन, सप्ताह या महीने जोड़ने या घटाने की आवश्यकता होती है, तो DateInterval क्लास काम आता है। यह एक समय अंतराल को परिभाषित करता है जिसे DateTime ऑब्जेक्ट पर लागू किया जा सकता है।

\n\n

अंतराल लिखने का प्रारूप (ISO 8601 duration) जटिल लग सकता है, लेकिन यह बहुत लचीला है:

\n
    \n
  • P — अनिवार्य उपसर्ग (period)।
  • \n
  • Y — वर्ष, M — महीने, D — दिन।
  • \n
  • T — समय के लिए विभाजक (यदि आवश्यक हो)।
  • \n
  • H — घंटे, M — मिनट, S — सेकंड।
  • \n
\n\n

उदाहरण: P1Y2M3DT4H5M6S का अर्थ है 1 वर्ष, 2 महीने, 3 दिन, 4 घंटे, 5 मिनट और 6 सेकंड।

\n\n
<?php\n$date = new DateTime('2024-01-01');\n$interval = new DateInterval('P10D'); // 10 दिन\n\n$date->add($interval);\necho $date->format('Y-m-d'); // आउटपुट: 2024-01-11\n\n// उलटा ऑपरेशन - घटाना\n$date->sub(new DateInterval('P5D'));\necho $date->format('Y-m-d'); // आउटपुट: 2024-01-06\n?>
\n\n

महत्वपूर्ण: महीनों और वर्षों के साथ काम करते समय DateInterval अप्रत्याशित व्यवहार कर सकता है। उदाहरण के लिए, यदि आप 31 जनवरी में 1 महीना जोड़ते हैं, तो आपको 3 मार्च मिलेगा (क्योंकि फरवरी में 31 दिन नहीं होते)। अधिक जटिल तर्क के लिए (जैसे "महीने का आखिरी दिन"), modify() विधि का उपयोग करें।

\n\n

DatePeriod क्लास आसानी से तिथियों की श्रृंखला उत्पन्न करने की अनुमति देता है। यह कैलेंडर या शेड्यूल बनाने के लिए आदर्श है।

\n\n
<?php\n$start = new DateTime('2024-12-01');\n$end = new DateTime('2024-12-31');\n$interval = new DateInterval('P1W'); // हर हफ्ते\n\n$period = new DatePeriod($start, $interval, $end);\n\nforeach ($period as $date) {\n    echo $date->format('l, Y-m-d') . "\\n"; // दिसंबर के सभी सोमवार प्रिंट करेगा\n}\n?>
\n\n

3. तिथियों के बीच तुलना और अंतर

ब्लॉग

पुस्तक अनुशंसाएँ