Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. PHP
Code

PHP में वर्तमान डेट और टाइम को फॉर्मेट करना

by
Difficulty:BeginnerLength:MediumLanguages:

Hindi (हिंदी) translation by Ashish Rampal (you can also view the original English article)

वेबसाइटों को डेवलपमेंट करते समय आप अक्सर डेट्स और टाइम के साथ काम करना चाहते हैं। उदाहरण के लिए, आपको किसी पोस्ट पर अंतिम मॉडिफाई की डेट दिखाना पड़ सकता है या उल्लेख कर सकते है कि एक रीडर ने कितनी देर पहले कुछ कमेंट लिखा था। आपको एक विशेष इवेंट तक दिनों की उलटी गिनती भी दिखानी पड़ सकती है।

सौभाग्य से, PHP कुछ बिल्ट-इन डेट और टाइम मेथड्स के साथ आता है जो हमें यह सब कुछ और अधिक भी आसानी से करने में मदद करेगा।

यह ट्यूटोरियल आपको सिखाएगा कि PHP में वर्तमान डेट और टाइम को कैसे फॉर्मेट किया जाए। आप यह भी सीखेंगे कि डेट स्ट्रिंग से टाइमस्टैम्प कैसे प्राप्त करें और विभिन्न डेट्स को कैसे जोड़े और घटाएं।

स्ट्रिंग फॉर्मेट में डेट और टाइम प्राप्त करना

date($format, $timestamp) PHP में उपलब्ध सबसे अधिक उपयोग किया जाने वाला डेट और टाइम मेथड्स में से एक है। यह डेट के लिए वांछित आउटपुट फॉर्मेट को पहले पैरामीटर के रूप में लेता है और एक टाइमस्टैम्प वैल्यू के रूप में एक इन्टिजर जिसे दिए गए डेट फॉर्मेट में परिवर्तित करने की आवश्यकता होती है। दूसरा पैरामीटर वैकल्पिक है, और इसे छोड़कर $format की वैल्यू के आधार पर वर्तमान डेट और टाइम स्ट्रिंग फॉर्मेट में आउटपुट देगा।

$format पैरामीटर वैलिड वैल्यूज के रूप में अक्षरों की एक श्रृंखला स्वीकार करता है। इनमें से कुछ करैक्टर का सीधा अर्थ है: Y आपको 4 अंकों (2018) के साथ वर्ष का पूर्ण संख्यात्मक प्रतिनिधित्व देता है, और y आपको केवल वर्तमान वर्ष (18) के अंतिम दो अंक देता है। इसी तरह, H आपको 24 घंटे के फॉर्मेट में लीडिंग शून्य के साथ घंटे देगा, लेकिन h आपको लीडिंग शून्यों के साथ 12 घंटे के फॉर्मेट में घंटे देगा।

यहां कुछ सबसे आम डेट फॉर्मेट करैक्टर और उनकी वैल्यू हैं।

करैक्टर अर्थ उदाहरण
d महीने का दिन लीडिंग शून्य के साथ 03 या 17
j महीने का दिन के बिना लीडिंग शून्य के 3 या 17
D सप्ताह का दिन एक तीन अक्षर के अब्रीविएशन के रूप में Mon
l सप्ताह के पूरा नाम Monday
m लीडिंग शून्य के साथ एक नंबर 09 या 12
n बिना लीडिंग शून्य के साथ एक महीना एक नंबर के रूप में 9 या 12
M तीन अक्षर के अब्रीविएशन के साथ महीना Sep
F पूरा महीना September
y दो अंकों का वर्ष 18
Y पूरा वर्ष 2018

date() फ़ंक्शन के आउटपुट को निर्दिष्ट करने के लिए कई अन्य विशेष करैक्टर हैं। विशेष मामलों के बारे में अधिक जानकारी के लिए date() फ़ंक्शन डॉक्यूमेंटेशन में फॉर्मेट करैक्टर टेबल को कंसल्ट करना सबसे अच्छा होता है।

आइए अब date() फ़ंक्शन के कुछ व्यावहारिक उदाहरण देखें। हम वर्तमान वर्ष, वर्तमान माह, वर्तमान घंटे, आदि प्राप्त करने के लिए इसका उपयोग कर सकते हैं, या हम इसे पूर्ण डेट स्ट्रिंग प्राप्त करने के लिए उपयोग कर सकते हैं।

आप टाइम आउटपुट करने के लिए date() फ़ंक्शन का भी उपयोग कर सकते हैं। यहां कुछ सबसे अधिक उपयोग किए जाने वाले टाइम फॉर्मेट करैक्टर हैं:

करैक्टर अर्थ उदाहरण
g लीडिंग शून्य के बिना 12 घंटे के फॉर्मेट के साथ घंटे 1 या 12
h लीडिंग शून्य के साथ 12 घंटे के फॉर्मेट में घंटे 01 या 12
G लीडिंग शून्य के बिना 24 घंटे के फॉर्मेट में घंटे 1 या 13
H लीडिंग शून्य के साथ 24 घंटे के फॉर्मेट में घंटे 01 या 13
a लोअरकेस में am/pm am
A अपरकेस में am/pm AM
i लीडिंग शून्य के साथ मिनट 09 या 15
s लीडिंग शून्य के साथ सेकंड्स 05 या 30

और यहां फॉर्मटेड टाइम स्ट्रिंग्स को आउटपुट करने के कुछ उदाहरण दिए गए हैं।

यह भी महत्वपूर्ण है कि आप इन विशेष करैक्टर को एस्केप करें यदि आप उन्हें अपनी डेट स्ट्रिंग के अंदर उपयोग करना चाहते हैं।

यूनिक्स टाइमस्टैम्प प्राप्त करें

कभी-कभी, आपको PHP में वर्तमान यूनिक्स टाइमस्टैम्प की वैल्यू प्राप्त करने की आवश्यकता होगी। यह time() फ़ंक्शन की सहायता से बहुत आसान है। यह एक इन्टिजर वैल्यू देता है जो 1 जनवरी 1970 से आधी रात (00:00:00) GMT में मिलीसेकंड की संख्या का वर्णन करता है।

आप इस फ़ंक्शन का उपयोग टाइम पर आगे और पीछे जाने के लिए भी कर सकते हैं। ऐसा करने के लिए, आपको बस इतना करना है कि time() के वर्तमान वैल्यू से सेकंड की सही संख्या घटाएं और फिर परिणाम वाली वैल्यू को वांछित डेट स्ट्रिंग में बदलें। यहां दो उदाहरण दिए गए हैं:

आपको याद रखे जाने वाली एक महत्वपूर्ण बात यह है कि time() द्वारा रीटर्न टाइमस्टैम्प वैल्यू टाइम-जोन अज्ञेयवादी (agnostic) है और 1 जनवरी 1970 से 00:00:00 UTC के बाद से सेकंड की संख्या प्राप्त होती है। इसका मतलब है कि टाइम पर एक विशेष बिंदु पर, यह कार्य अमेरिका, यूरोप, भारत या जापान में समान वैल्यू को रीटर्न करेगा।

किसी विशेष डेट के लिए टाइमस्टैम्प प्राप्त करने का एक और तरीका mktime($hour, $minute, $second, $month, $day, $year) फ़ंक्शन का उपयोग करना होगा। जब सभी पैरामीटर छोड़ दिए जाते हैं, तो यह फ़ंक्शन टाइमस्टैम्प वैल्यू की गणना करने के लिए वर्तमान लोकल डेट और टाइम का उपयोग करता है। यह फंक्शन date() के साथ भी प्रयोग किया जा सकता है ताकि यह उपयोगी डेट और टाइम स्ट्रिंग को जेनेरेट कर सके।

असल में, time() का उपयोग समय की अवधि में आगे पीछे जाने के लिए किया जा सकता है, जबकि mktime() उपयोगी होता है जब आप समय के किसी विशेष बिंदु पर जाना चाहते हैं।

एक डेटटाइम स्ट्रिंग को एक टाइमस्टैम्प में कनवर्ट करें

strtotime($time, [$now = time()]) फ़ंक्शन अविश्वसनीय रूप से सहायक होगा जब आप स्ट्रिंग फॉर्मेट में टाइमस्टैम्प में अलग-अलग डेट और टाइम वैल्यूज को कन्वर्ट करना चाहते हैं। फ़ंक्शन टाइमस्टैम्प लगभग सभी प्रकार के डेटटाइम स्ट्रिंग को पार्स कर सकता है।

आपको निश्चित रूप से वैध टाइम फॉर्मेट, डेट फॉर्मेट, कंपाउंड डेटटाइम फॉर्मेट, और रिलेटिव डेटटाइम फॉर्मेट की जांच करनी चाहिए।

रिलेटिव डेटटाइम फोर्मट्स के साथ, यह फ़ंक्शन आमतौर पर सामान्य टाइमस्टैम्प वैल्यूज में आमतौर पर प्रयुक्त स्ट्रिंग को परिवर्तित कर सकता है। निम्नलिखित उदाहरणों को यह स्पष्ट करना चाहिए:

डेट्स को जोड़ना, घटाना और तुलना करना

किसी तारीख से और टाइम के विशिष्ट अवधि को जोड़ना और घटाना संभव है। यह date_add() और date_sub() फ़ंक्शंस की सहायता से किया जा सकता है। आप date_diff() फ़ंक्शन का उपयोग दो डेट्स को घटाने और वर्षों, महीनों, और दिनों, या किसी अन्य चीज़ के संदर्भ में उनके बीच अंतर को आउटपुट करने के लिए भी कर सकते हैं।

आम तौर पर, प्रोसीजर के तरीके से करने के बजाय DateTime क्लास के साथ ऑब्जेक्ट-ओरिएंटेड स्टाइल में ऐसी तारीख और टाइम से संबंधित अरिथमेटिक करना आसान होता है। हम इन दोनों स्टाइल्स को यहां आज़माएंगे, और आप जो भी चाहें चुन सकते हैं।

DateTime::diff() का उपयोग करते समय, DateTime ऑब्जेक्ट जिस पर diff() मेथड को कॉल किया जाता है उसे DateTime ऑब्जेक्ट से घटाया जाता है जो diff() मेथड को पास कर दिया जाता है। जब आप प्रक्रियात्मक (procedural) स्टाइल से कोड लिख रहे हैं, तो पहली डेट पैरामीटर दूसरे डेट पैरामीटर से घटाया जाता है।

दोनों फ़ंक्शन और मेथड DateInterval() ऑब्जेक्ट को रीटर्न करते हैं जो तो डेट के बीच के अंतर को रीप्रेजेंट करता है। format() मेथड डॉक्यूमेंटेशन में लिस्टेड सभी करैक्टर का उपयोग करके एक विशिष्ट आउटपुट देने के लिए इंटरवल को फॉर्मटेड किया जा सकता है।

ऑब्जेक्ट-ओरिएंटेड स्टाइल और प्रक्रियात्मक (procedural) स्टाइल के बीच का अंतर अधिक स्पष्ट हो जाता है जब टाइम इंटरवल को घटाया या जोड़ा जाए।

आप DateTime() कन्स्ट्रक्टर का उपयोग कर एक नया DateTime ऑब्जेक्ट को तुरंत चालू कर सकते हैं। इसी तरह, आप DateInterval() कन्स्ट्रक्टर का उपयोग कर DateInterval ऑब्जेक्ट को तुरंत चालू कर सकते हैं। यह एक स्ट्रिंग को इसके पैरामीटर के रूप में स्वीकार करता है। इंटरवल स्ट्रिंग P के साथ शुरू होती है, जो अवधि को दर्शाती है। उसके बाद, आप प्रत्येक अवधि को एक इन्टिजर वैल्यू और किसी विशेष अवधि में निर्दिष्ट करैक्टर का उपयोग करके निर्दिष्ट कर सकते हैं। अधिक जानकारी के लिए आपको DateInterval डॉक्यूमेंटेशन की जांच करनी चाहिए।

यहां एक उदाहरण दिया गया है जो दर्शाता है कि PHP में डेट और टाइम को जोड़ना या घटाना कितना आसान है।

कम्पेरिज़न ऑपरेटरों का उपयोग करके आप PHP में डेट्स की तुलना भी कर सकते हैं। यह हर समय काम में आ सकता है। आइए कम्पेरिज़न ऑपरेटर और अन्य DateTime मेथड्स का उपयोग करके क्रिसमस डे काउंटर बनाएं।

हमने वर्तमान टाइम और इस साल के क्रिसमस की तारीख को स्टोर करने के लिए दो DateTime ऑब्जेक्ट्स बनाकर शुरुआत की। इसके बाद, हम क्रिसमस की तारीख से कम तारीख तक 2018 की क्रिसमस की तारीख तक 1 वर्ष जोड़ने के लिए while लूप चलाते हैं। यह कोड सहायक होगा जब कोड 18 जनवरी 2024 को चलता है। जबकि लूप क्रिसमस की तारीख में वृद्धि करेगा जब तक कि यह इस स्क्रिप्ट को चलाने के टाइम वर्तमान डेट से कम न हो।

हमारा क्रिसमस डे काउंटर अब बिना किसी समस्या के आने के लिए दशकों तक काम करेगा।

अंतिम विचार

इस ट्यूटोरियल में, हमने date() फ़ंक्शन का उपयोग करके वांछित फॉर्मेट में वर्तमान डेट और टाइम को आउटपुट करने का तरीका सीखा। हमने यह भी देखा कि date() का उपयोग केवल चालू वर्ष, महीने आदि के लिए भी किया जा सकता है। उसके बाद, हमने सीखा कि वर्तमान टाइमस्टैम्प कैसे प्राप्त करें या एक वैलिड DateTime स्ट्रिंग को टाइमस्टैम्प में परिवर्तित करें। अंत में, हमने अलग-अलग डेट्स से टाइम की अवधि को जोड़ने या घटाने का तरीका सीखा।

मैंने यहां महत्वपूर्ण DateTime फ़ंक्शंस और मेथड्स को कवर करने का प्रयास किया है। आपको निश्चित रूप से ट्यूटोरियल में शामिल मेथड्स के बारे में पढ़ने के लिए डॉक्यूमेंटेशन को देखना चाहिए। यदि आपके कोई प्रश्न हैं, तो मुझे कमैंट्स में मुझे बताने में संकोच न करें।

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.