php - समय - सभी देशों का टाइम




डेटटाइम क्लास का उपयोग करके PHP में समय क्षेत्र के बीच कैसे परिवर्तित करें? (2)

मैं वर्तमान समय के बीच समय को यूटीसी और यूटीसी में वर्तमान समय क्षेत्र में बदलने की कोशिश कर रहा हूं।

मैंने जो किया है वह यहां है:

$schedule_date = new DateTime($triggerOn, new DateTimeZone('UTC') );
$triggerOn =  $schedule_date->format('Y-m-d H:i:s');

echo $triggerOn;

आउटपुट मान केवल एक चीज को नहीं बदलता है जो प्रारूप में बदलता है।

स्ट्रिंग $triggerOn America/Los_Angeles $triggerOn आधार पर जेनरेट किया गया था

इस प्रकार मेरी स्ट्रिंग पहले और बाद में दिखती है:

BEFORE    04/01/2013 03:08 PM
AFTER     2013-04-01 15:08:00

तो यहां मुद्दा यह है कि डेटटाइम यूटीसी में परिवर्तित नहीं होता है।


आप जो खोज रहे हैं वह यह है:

$triggerOn = '04/01/2013 03:08 PM';
$user_tz = 'America/Los_Angeles';

echo $triggerOn; // echoes 04/01/2013 03:08 PM

$schedule_date = new DateTime($triggerOn, new DateTimeZone($user_tz) );
$schedule_date->setTimeZone(new DateTimeZone('UTC'));
$triggerOn =  $schedule_date->format('Y-m-d H:i:s');

echo $triggerOn; // echoes 2013-04-01 22:08:00

आप तिथि / समय का उपभोग कर रहे हैं और समय क्षेत्र को सही ढंग से सेट कर रहे हैं, हालांकि डेटाटाइम को स्वरूपित करने से पहले, आप वांछित आउटपुट टाइमज़ोन सेट नहीं कर रहे हैं। यहां एक उदाहरण दिया गया है जो यूटीसी समय क्षेत्र स्वीकार करता है, और दिनांक / समय को अमेरिका / लॉस_एंजेलस समय क्षेत्र में परिवर्तित करता है:

<?php
$original_datetime = '04/01/2013 03:08 PM';
$original_timezone = new DateTimeZone('UTC');

// Instantiate the DateTime object, setting it's date, time and time zone.
$datetime = new DateTime($original_datetime, $original_timezone);

// Set the DateTime object's time zone to convert the time appropriately.
$target_timezone = new DateTimeZone('America/Los_Angeles');
$datetime->setTimeZone($target_timezone);

// Outputs a date/time string based on the time zone you've set on the object.
$triggerOn = $datetime->format('Y-m-d H:i:s');

// Print the date/time string.
print $triggerOn; // 2013-04-01 08:08:00






timezone