Время показа для разных австралийских штатов - PullRequest
1 голос
/ 14 января 2012

Мы используем очень простую функцию php для отображения времени и даты.

<div class="datedata"><?=date("l, F jS, Y", time());?></div>

Но я думал, как бы показать фактическое время в разных штатах Австралии.

Раньше я знал скрипт для отображения времени нашего сервера, который находится в nsw, но забыл его. Полагаю, это будет проще всего ... отображать время сервера, а затем показывать время различий в зависимости от времени сервера + / - 1 час, независимо от того ...

Интересно, есть ли у кого-нибудь предложения? Приветствия

С помощью @crolpa это то, что у меня есть, как я уже сказал ... я обосрался с php.

<?php
date_default_timezone_set('Australia/Adelaide');
$adelaide = time();

date_default_timezone_set('Australia/Melbourne');
$melbourne = time();

date_default_timezone_set('Australia/Sydney');
$sydney = time();

//etc...

?>

<?=date("G:i a",$adelaide)?><br />
<?=date("G:i a",$melbourne)?><br />
<?=date("G:i a",$sydney)?><br />

1 Ответ

4 голосов
/ 14 января 2012

Вы можете добавить смещения к базовому времени. Так ..

$offset = 3600 * 1.5 //+ 1.5 hours

$timestamp = time() + $offset;

echo date("l, F jS, Y",$timestamp);

Функция по умолчанию time() устанавливается вашим сервером. Вы можете легко изменить это в начале вашего скрипта:

date_default_timezone_set('Australia/Adelaide');

Это также можно использовать в вашем скрипте для имитации различных часовых поясов.

date_default_timezone_set('Australia/Adelaide');
echo date("l, F jS, Y",time());

date_default_timezone_set('Australia/Melbourne');
echo date("l, F jS, Y",time());

date_default_timezone_set('Australia/Sydney');
echo date("l, F jS, Y",time());

Это самый простой способ, который также автоматически настраивается при переходе на летнее время:

<?php
    date_default_timezone_set('Australia/Adelaide');
    $adelaide = time();

    date_default_timezone_set('Australia/Melbourne');
    $melbourne = time();

    date_default_timezone_set('Australia/Sydney');
    $sydney = time();

    //etc...

?>

<?=date("l, F jS, Y",$adelaide);?>
...