समय-मुद्राएँ (टाइमस्टैम्प) समय के बिंदुओं को संख्यात्मक मानों के रूप में दर्शाने के लिए आवश्यक हैं, आमतौर पर यूनिक्स युग (1 जनवरी, 1970, 00:00:00 GMT) से सेकंड में। यह डेटाबेस के साथ काम करते समय, तिथियों की तुलना करते समय या PHP में तिथि-आधारित गणना करते समय विशेष रूप से उपयोगी है। यह लेख तिथियों को समय-मुद्राओं में बदलने के कई कुशल और मज़बूत तरीकों का पता लगाता है।
विषय-सूची
strtotime()
का उपयोग करनाstrptime()
का उपयोग करनाDateTime
औरgetTimestamp()
का उपयोग करनाDateTime::format()
का लाभ उठाना
strtotime()
का उपयोग करना
strtotime()
फ़ंक्शन विभिन्न तिथि स्ट्रिंग स्वरूपों को यूनिक्स समय-मुद्राओं में बदलने के लिए व्यापक रूप से उपयोग किया जाने वाला और सुविधाजनक तरीका है। यह इनपुट स्ट्रिंग की व्याख्या करने और संबंधित समय-मुद्रा लौटाने का प्रयास करता है।
<?php
$dateString = "2024-03-15 10:30:00";
$timestamp = strtotime($dateString);
if ($timestamp !== false) {
echo "समय-मुद्रा: " . $timestamp . "n";
} else {
echo "अमान्य तिथि स्ट्रिंगn";
}
// सापेक्ष तिथियाँ
$timestamp = strtotime("+1 week");
echo "समय-मुद्रा (अब से एक सप्ताह बाद): " . $timestamp . "n";
$timestamp = strtotime("next monday");
echo "समय-मुद्रा (अगला सोमवार): " . $timestamp . "n";
?>
लाभ: सरल, बहुमुखी, तिथि स्वरूपों की एक विस्तृत श्रृंखला को संभालता है।
नुकसान: स्थानीय सेटिंग्स के कारण अस्पष्ट हो सकता है; अपरंपरागत या खराब स्वरूपित तिथियों के साथ विफल हो सकता है।
strptime()
का उपयोग करना
अधिक सटीक नियंत्रण और कम अस्पष्टता के लिए, strptime()
आपको अपनी तिथि स्ट्रिंग के सटीक स्वरूप को निर्दिष्ट करने की अनुमति देता है। यह स्थानीय के आधार पर संभावित गलत व्याख्याओं को समाप्त करता है।
<?php
$dateString = "15/03/2024 10:30:00";
$format = "%d/%m/%Y %H:%M:%S";
$dateTime = strptime($dateString, $format);
if ($dateTime !== false) {
$timestamp = mktime($dateTime['tm_hour'], $dateTime['tm_min'], $dateTime['tm_sec'], $dateTime['tm_mon'] + 1, $dateTime['tm_mday'], $dateTime['tm_year'] + 1900);
echo "समय-मुद्रा: " . $timestamp . "n";
} else {
echo "अमान्य तिथि स्ट्रिंग या स्वरूपn";
}
?>
लाभ: सटीक नियंत्रण, अस्पष्टता को कम करता है।
नुकसान: एक ज्ञात तिथि स्वरूप की आवश्यकता होती है; strtotime()
की तुलना में कम लचीला; mktime()
का उपयोग करके एक अतिरिक्त चरण की आवश्यकता होती है।
DateTime
और getTimestamp()
का उपयोग करना
DateTime
कक्षा एक ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण प्रदान करती है, जिससे बेहतर त्रुटि संचालन और पठनीयता मिलती है। getTimestamp()
विधि सीधे DateTime
ऑब्जेक्ट से समय-मुद्रा प्राप्त करती है।
<?php
$date = new DateTime("2024-03-15 10:30:00");
$timestamp = $date->getTimestamp();
echo "समय-मुद्रा: " . $timestamp . "n";
try {
$date = new DateTime("invalid date");
$timestamp = $date->getTimestamp();
} catch (Exception $e) {
echo "त्रुटि: " . $e->getMessage() . "n";
}
?>
लाभ: ऑब्जेक्ट-ओरिएंटेड, बेहतर त्रुटि संचालन, स्पष्ट और बनाए रखने योग्य कोड।
नुकसान: strtotime()
की तुलना में थोड़ा अधिक विस्तृत।
DateTime::format()
का लाभ उठाना
जबकि DateTime::format()
सीधे समय-मुद्रा नहीं लौटाता है, यह strtotime()
प्रसंस्करण के लिए उपयुक्त मानकीकृत स्ट्रिंग स्वरूप में DateTime
ऑब्जेक्ट को बदलने के लिए उपयोगी है। यह रूपांतरण से पहले तिथि स्ट्रिंग पर नियंत्रण की एक अतिरिक्त परत प्रदान करता है।
<?php
$date = new DateTime("2024-03-15 10:30:00");
$dateString = $date->format("Y-m-d H:i:s");
$timestamp = strtotime($dateString);
echo "समय-मुद्रा: " . $timestamp . "n";
?>
लाभ: DateTime
ऑब्जेक्ट से शुरू करते समय मध्यवर्ती स्वरूपण नियंत्रण के लिए उपयोगी।
नुकसान: getTimestamp()
का सीधे उपयोग करने की तुलना में अधिक चरण शामिल हैं।
निष्कर्ष में, इष्टतम विधि विशिष्ट संदर्भ और आवश्यकताओं पर निर्भर करती है। सरल रूपांतरणों के लिए strtotime()
आदर्श है, जबकि DateTime
और getTimestamp()
मजबूती और ऑब्जेक्ट-ओरिएंटेड डिज़ाइन प्रदान करते हैं। जब सटीक स्वरूप नियंत्रण महत्वपूर्ण हो, तो strptime()
फायदेमंद है। उपयोगकर्ता द्वारा आपूर्ति किए गए इनपुट के साथ, हमेशा संभावित त्रुटियों को संभालना याद रखें।