PHP में वर्तमान दिनांक और समय कैसे प्राप्त करें: 2025 के सर्वोत्तम तरीके
\n\nहर PHP डेवलपर, चाहे वह नौसिखिया हो या सीनियर, कम से कम एक बार यह सवाल ज़रूर पूछता है: "PHP में वर्तमान दिनांक और समय कैसे प्राप्त करें?"। Stack Overflow पर इस प्रश्न के हज़ारों व्यूज़ हैं और यह आज भी उतना ही प्रासंगिक है। 2025 में, जब PHP वेब डेवलपमेंट में अपनी मजबूत पकड़ बनाए हुए है, तो दिनांक और समय के साथ सही तरीके से काम करना सिर्फ एक बुनियादी कौशल नहीं, बल्कि एक ज़रूरत है। लॉगिंग, कैशिंग, रिपोर्ट्स, API के साथ काम — इन सबमें सटीक समय की आवश्यकता होती है। इस लेख में हम न केवल क्लासिक फंक्शन्स को समझेंगे, बल्कि आधुनिक सर्वोत्तम तरीकों पर भी चर्चा करेंगे, ताकि आपका कोड साफ, विश्वसनीय और किसी भी टाइमज़ोन के लिए तैयार हो।
\n\nक्लासिक तरीका: date() और time()
\n\nPHP में वर्तमान दिनांक और समय प्राप्त करने का सबसे सरल और तेज़ तरीका date() फंक्शन है। यह एक फ़ॉर्मेट स्ट्रिंग लेता है और सर्वर के वर्तमान समय या दिए गए timestamp के आधार पर फ़ॉर्मेटेड दिनांक लौटाता है।
<?php\necho date('Y-m-d H:i:s'); // 2025-04-10 14:30:00\necho date('d.m.Y'); // 10.04.2025\necho date('r'); // Thu, 10 Apr 2025 14:30:00 +0300\n?>\n\nऔर अगर आपको सिर्फ Unix timestamp चाहिए (1 जनवरी 1970 से सेकंड्स की संख्या)? तो time() का उपयोग करें:
<?php\n$timestamp = time();\necho $timestamp; // 1744273800 (उदाहरण)\necho date('Y-m-d H:i:s', $timestamp);\n?>\n\nमहत्वपूर्ण: date() उस टाइमज़ोन का उपयोग करता है जो php.ini में date.timezone डायरेक्टिव के ज़रिए सेट किया गया है, या date_default_timezone_set() फंक्शन द्वारा निर्धारित किया गया है। 2025 में भी यह सरल स्क्रिप्ट्स के लिए एक काम का विकल्प है, लेकिन गंभीर प्रोजेक्ट्स के लिए इससे ज़्यादा लचीले टूल्स मौजूद हैं।
आधुनिक तरीका: DateTime क्लास
\n\nPHP 5.2 (जो काफी पहले आया था) से, भाषा में दिनांकों के साथ काम करने का एक ऑब्जेक्ट-ओरिएंटेड तरीका आया — DateTime क्लास। यह अधिकांश फ्रेमवर्क्स और CMS के लिए डी-फैक्टो स्टैंडर्ड बन गया है। क्यों? क्योंकि यह ज़्यादा लचीला, पढ़ने में आसान और सुरक्षित है।
<?php\n$now = new DateTime();\necho $now->format('Y-m-d H:i:s'); // 2025-04-10 14:30:00\n\n// टाइमज़ोन के साथ\n$now = new DateTime('now', new DateTimeZone('Asia/Kolkata'));\necho $now->format('Y-m-d H:i:s'); // 2025-04-10 15:00:00 (IST)\n?>\n\nDateTime आपको आसानी से दिनांकों में हेरफेर करने की सुविधा देता है: दिन जोड़ना, महीने घटाना, ऑब्जेक्ट्स की तुलना करना। उदाहरण के लिए:
<?php\n$today = new DateTime();\n$nextWeek = (new DateTime())->modify('+7 days');\n$diff = $nextWeek->diff($today);\necho $diff->days; // 7\n?>\n\nPHP 2025 के सर्वोत्तम तरीकों में इसी दृष्टिकोण की सिफारिश की जाती है। यह इम्यूटेबल है (यदि आप सीधे ऑब्जेक्ट को नहीं बदलते) और सहज रूप से समझ में आता है।
\n\nइम्यूटेबल विकल्प: DateTimeImmutable
\n\nअगर आप किसी गंभीर प्रोजेक्ट पर काम कर रहे हैं जहाँ पूर्वानुमानशीलता महत्वपूर्ण है, तो DateTimeImmutable का उपयोग करें। DateTime के विपरीत, इसके तरीके मूल ऑब्जेक्ट को नहीं बदलते, बल्कि एक नया ऑब्जेक्ट लौटाते हैं। यह आकस्मिक स्टेट म्यूटेशन को रोकता है।
<?php\n$date = new DateTimeImmutable('2025-04-10');\n$newDate = $date->modify('+1 month');\necho $date->format('Y-m-d'); // 2025-04-10 (नहीं बदला)\necho $newDate->format('Y-m-d'); // 2025-05-10\n?>\n\n2025 में इसे अच्छा अभ्यास माना जाता है — जहाँ भी संभव हो, DateTimeImmutable का उपयोग करें।
टाइमज़ोन: सेटिंग और कन्वर्टेशन
\n\nटाइमज़ोन की गलती सबसे आम समस्याओं में से एक है। कल्पना करें: सर्वर अमेरिका में है, उपयोगकर्ता भारत में है, और आप ग्रीनविच समय दिखा रहे हैं। यह एक क्लासिक विफलता है।
\n\nइससे बचने के लिए, हमेशा स्पष्ट रूप से टाइमज़ोन निर्दिष्ट करें। सबसे विश्वसनीय तरीका है स्क्रिप्ट की शुरुआत में date_default_timezone_set() का उपयोग करना: