Forum Webscript.Ru

Программирование => PHP => Тема начата: MASe от 01 Октября 2002, 15:56:16

Название: подгон времени сервера (запад) под время РФ
Отправлено: MASe от 01 Октября 2002, 15:56:16
вот такой  вопрос - сервер буржуйский (разница с нами 2 часа).
функция забора даты ==
 $date = date("Y-m-d g:i:sa",$date);
=== могу я сделать так, чтобы дата стала +2 часа автоматически???

и как в таком случае избежать "глюков" с 23 и 24 часа и числом соответственно...???
Название: подгон времени сервера (запад) под время РФ
Отправлено: ThE0ReTiC от 01 Октября 2002, 16:19:04
http://www.php.net/manual/en/function.setlocale.php
Название: подгон времени сервера (запад) под время РФ
Отправлено: PilotV от 01 Октября 2002, 16:43:58
Я лично не очень знаком с setlocale() (возможно, он уместнее), но в своем творчестве использую такой подход (и пока доволен:

В файле настроек:

$GMT=2*3600;   // Желаемый (свой) GMT-сдвиг в сек., false - если юзать системный
$SERVER_TIME_CORRECTION=0;    // На случай если часики на серваке просто сбиты


В файле инициализации:

$TIME=time()+$SERVER_TIME_CORRECTION; // Юзать везде потом, явно.
$SERVER_GMT=(int)date("Z",86400); // В зимнее время
if (is_bool($GMT)) $GMT=$SERVER_GMT;
$GMT_DIFF=$GMT-$SERVER_GMT;


Функция, юзаемая везде вместо date(), формат тот же:

function site_date($format_str,$timestamp=-1) {
    global $TIME,$GMT_DIFF;
  if ($timestamp==-1) $timestamp=$TIME;
  return date($format_str,$timestamp+$GMT_DIFF);
  }