まず、私はこのコードで何が必要かを理解するために 2 日間ノンストップで苦労してきましたが、まだ四角形で立ち往生しています。
ここに私は再びいます。私の頭が爆発しているので、誰かがこの問題に光を当ててくれることを願っています。
私がする必要があるのは、PHP で DateTime を使用して 2 つの値の差を取得することです。
最初の値は 00:00 で、これは設定値であり、変更されることはありません。
2 番目の値は $offset/3600 * 1 で、これは 2 つのタイムゾーン間の時差です。
私が使用しているコードはこれです:
<?php
if (0 > $offset)
{
// set an object with the current date
$date = new DateTime();
$date->setTime(00, 00);
// the second date
$date2 = new DateTime($offset/3600 * 1);
// apply the diff() method, getting a DateInterval object ($diDiff)
$diDiff = $date->diff($date2) ;
}
echo $diDiff->format("H:i");
?>
上記のコードは this: をエコーし、 H:i
他には何もありません!
私は何を間違っていますか?
前もって感謝します。
編集:
$offset はここから来ます:
if( isset($_POST['submit']))
{
//be sure to validate and clean your variables
$timezone1 = htmlentities($_POST['timezone1']);
$timezone2 = htmlentities($_POST['timezone2']);
//then you can use them in a PHP function.
function get_timezone_offset( $origin_tz, $remote_tz ) {
$timezone1 = new DateTimeZone( $origin_tz );
$timezone2 = new DateTimeZone( $remote_tz );
$datetime1 = new DateTime("now", $timezone1);
$datetime2 = new DateTime("now", $timezone2);
$offset = $timezone1->getOffset($datetime1) - $timezone2->getOffset($datetime2);
return $offset;
}
$offset = get_timezone_offset($timezone1, $timezone2);
}
?>
timezone1 と timezone2 は、php タイムゾーンを含む 2 つのドロップダウン リストであり、同一です。
そのようです:
<select name="timezone2" id="timezone2" class="timezone2">
<?php
foreach($options as $key => $value)
{
echo '<option value="'. $key .'" label="'. $value .'">'.$value.'</option>';
}
?>
<option value="Africa/Abidjan" label="Abidjan">Abidjan</option>
<option value="Africa/Accra" label="Accra">Accra</option>
<option value="Africa/Addis_Ababa" label="Addis Ababa">Addis Ababa</option>
<option value="Africa/Algiers" label="Algiers">Algiers</option>
<option value="Africa/Asmara" label="Asmara">Asmara</option>
</select>