1

私は自分のサイトでいくつかの世界時間を表示しようとしています。BST 1時間の飛躍を取り入れながら、時間を更新/正確に保つ最も正確な方法を探しています。

これまでのところ私は持っています

<?php
date_default_timezone_set('Europe/London');
$uk_time = date("g:i A");
$month = date("n");

if ($month < 3 || $month > 10)  //January, February, November and December are not BST months.
{
$us_time = date("g:i A", strtotime('-4 hours'));
$dub_time = date("g:i A", strtotime('+4 hours'));
$kong_time = date("g:i A", strtotime('+8 hours'));
}
elseif ($month > 3 || $month < 10)  //April to September are BST months.
{
$us_time = date("g:i A", strtotime('-5 hours'));
$dub_time = date("g:i A", strtotime('+3 hours'));
$kong_time = date("g:i A", strtotime('+7 hours'));
}
?>
<div class="time-left">
<ul>
  <li class="clock"><strong>New York:</strong> <?php echo "$us_time" ?></li>
  <li><strong>London:</strong> <?php echo "$uk_time" ?></li>
  <li><strong>Dubai:</strong> <?php echo "$dub_time" ?></li>
  <li><strong>Hong Kong:</strong> <?php echo "$kong_time" ?></li>
</ul>
</div>

何か良い方法がないか検討中です

乾杯

ジェフ

4

2 に答える 2

1

はいあります。オブジェクトを使用DateTimeします(オブジェクトと組み合わせて使用​​します。このリストのタイムゾーンを使用して、DateTimeZoneより多くのオブジェクトをインスタンス化できます。DateTimeZone

例:

<?php

    $london_tz    = new DateTimeZone("Europe/London");
    $hong_kong_tz = new DateTimeZone("Asia/Hong_Kong");
    $dubai_tz     = new DateTimeZone("Asia/Dubai");

    $london_time    = new DateTime("now", $london_tz);
    $hong_kong_time = new DateTime("now", $hong_kong_tz);
    $dubai_time     = new DateTime("now", $dubai_tz);

    echo $london_time->format("H:i:s Y-m-d") . PHP_EOL;
    echo $hong_kong_time->format("H:i:s Y-m-d") . PHP_EOL;
    echo $dubai_time->format("H:i:s Y-m-d") . PHP_EOL;

PHPのDateTimeとDateTimeZoneの素晴らしいところは、すべての魔法を使ってくれることです。DSTやその他の奇妙なカスタム要素を考慮する必要はありませんが、DateTimeはすでに知っています:)

于 2012-07-30T13:04:33.443 に答える
0
<?php
$date = new DateTime(null, new DateTimeZone('Europe/London'));
$tz = $date->getTimezone();
echo $tz->format('Y-m-d H:i:s');

$date = new DateTime(null, new DateTimeZone('Asia/Hong_Kong'));
$tz = $date->getTimezone();
echo $tz->format('Y-m-d H:i:s');
?> 

等...

サポートされているタイムゾーンのリストは次のとおりです:http://php.net/manual/en/timezones.php

于 2012-07-30T13:05:50.330 に答える