1

GMT 時間を使用して日付と時刻を変換する際に助けが必要です。現在Convertdatetime、タイムゾーンを使用していますが、GMT のみを使用して以下のドロップダウンから選択した GMT に基づいて日付と時刻を変換する必要があり、now()関数は日付と時刻をMySQL (サーバー時間) に格納するために使用されますか?

例: (2012/08/11 18:45:00) アフガニスタンから 2012 年 8 月 11 日土曜日の午後 5:43

アンドラ 2012 年 8 月 11 日 午後 3 時 16 分

<option value="Afghanistan">(GMT+4:30) Afghanistan</option>
<option value="Andorra">(GMT +1:00) Andorra</option>
<option value="United Arab Emirates">(GMT +04:00) United Arab Emirates</option>
<option value="Antigua and Barbuda">(GMT +04:00) Antigua and Barbuda</option>


function Convertdatetime($gmttime,$timezoneRequired)
{
    $system_timezone = date_default_timezone_get();

    $local_timezone = $timezoneRequired;
    date_default_timezone_set($local_timezone);
    $local = date("Y-m-d h:i:s A");

    date_default_timezone_set("GMT");
    $gmt = date("Y-m-d h:i:s A");

    date_default_timezone_set($system_timezone);
    $diff = (strtotime($gmt) - strtotime($local));

    $date = new DateTime($gmttime);
    $date->modify("+$diff seconds");
    $timestamp = $date->format("m-d-Y H:i:s");
    return $timestamp;
}
ConvertLocalTimezoneToGMT('2012-08-11 17:24:00.000','Asia/Calcutta');

出力: 11-08-2012 11:54:00 || GMT = IST-5.5

4

2 に答える 2

1

タイムゾーンを変更するには、セッターsetTimezoneを使用するだけです:

$systemTz = new DateTimezone($system_timezone);
$gmt = new DateTimeZone('GMT');
$serverTz = new dateTimezone($server_timezone);
$dateServer = new DateTime($sqlResult['date_column'],$serverTz);
$gmt = clone $dateServer;
$gmt->setTimezone($gmt);
$dateSyst = clone DateServer;
$dateSyst->setTimezone($systemTz);

その後、必要に応じてフォーマットできます。

于 2012-08-11T13:41:53.233 に答える
0

次のコードは、さまざまなタイム ゾーンの違いを秒単位で示します。

$timezone = new DateTimeZone("Asia/Karachi");
$offset = $timezone->getOffset(new DateTime("now"));

Asia/Karachi単にこれらの秒を時間に追加するのではなく、ユーザーが選択したものに置き換えます

DateTimeZone::getOffset — GMT からのタイムゾーンのオフセットを返す

http://www.php.net/manual/en/class.datetimezone.php

于 2012-08-11T13:40:28.820 に答える