जब किसी date-time string में पहले से टाइमज़ोन जानकारी शामिल होती है (जैसे "America/Los_Angeles"), तो PHP का strtotime() फंक्शन बिना डिफ़ॉल्ट टाइमज़ोन सेट किए सही timestamp निकाल सकता है।
वर्तमान डिफ़ॉल्ट टाइमज़ोन जांचें
echo date_default_timezone_get(); // आउटपुट: UTC (या सर्वर का डिफ़ॉल्ट)
टाइमज़ोन सहित String पार्स करना
// String में टाइमज़ोन शामिल है
$timestamp = strtotime("1/1/2020 00:00:00 America/Los_Angeles");
echo date("Y-m-d H:i:s", $timestamp);
// आउटपुट: 2020-01-01 08:00:00 (UTC में बदल गया)
टाइमज़ोन के बिना String (डिफ़ॉल्ट टाइमज़ोन उपयोग करता है)
$timestamp = strtotime("1/1/2020 00:00:00");
echo date("Y-m-d H:i:s", $timestamp);
// आउटपुट: 2020-01-01 00:00:00 (डिफ़ॉल्ट टाइमज़ोन में)
व्यावहारिक उदाहरण: UTC में बदलना
function toUtcTimestamp($datetimeString) {
// DateTime ऑब्जेक्ट बनाएं (string का टाइमज़ोन स्वचालित रूप से उपयोग करता है)
$dt = new DateTime($datetimeString);
// UTC में बदलें
$dt->setTimezone(new DateTimeZone('UTC'));
return $dt->getTimestamp();
}
// उपयोग
echo toUtcTimestamp("2024-01-15 10:30:00 America/New_York"); // EST (UTC-5)
echo toUtcTimestamp("2024-01-15 10:30:00 Europe/London"); // GMT (UTC+0)
echo toUtcTimestamp("2024-01-15 10:30:00 Asia/Kolkata"); // IST (UTC+5:30)
महत्वपूर्ण बिंदु
strtotime()string में टाइमज़ोन होने पर उसका सम्मान करता है- प्रदर्शन के लिए
date_default_timezone_set()सेट करें, पार्सिंग के लिए नहीं DateTimeक्लास अधिक मजबूत और ऑब्जेक्ट-ओरिएंटेड है- ISO 8601 फॉर्मेट (जैसे "2024-01-15T10:30:00+05:30") सबसे विश्वसनीय है