Отправляет email-рассылки с помощью сервиса Sendsay

[TC] PHP: что со временем???

Vande omentaina, Tiflocomp!
Народ, я скоро начну биться лбом о стену: то ли я идиот, то ли ещё
что.
Итак, проблема: в одном заведении (скажем, виртуальной школе) надо
прекратить допуск к сдаче домашних работ по окончании семестра, дата
которого устанавливается директором. В 00:00:00 по серверному времени
(подчёркиваю, по серверному!) должна прекратиться отправка работ.
Похоже, что сервер работает по московскому времени.
Теперь внимание. Фрагмент кода main.php:
// $f_date[Value] - это дата конца семестра в формате Unix Timestamp
$CurrTime=time();
// $EndDate[] - это массив, полученный посредством GetDate()
// (не пинайтесь, код старый, я тогда был не такой умный))))
if ($f_date[Value]>$CurrTime) {
$EndSem="Семестр продлится до $EndDate[mday] $EndDate[mon] $EndDate[year] года";
} else {
$EndSem="Семестр закончен.";
}
по идее, если дата конца семестра меньше текущего времени, семестр
закончен.
Дальше я ваяю скрипт, чтобы понять, когда же у них полночь!
// Определяем конец семестра
$f=mysql_fetch_assoc(mysql_query("SELECT `Value` FROM `Constants` WHERE `Name`='EndSemesterDate'",
$link));
$remainder=$f[Value]-time();
$remainder=date("H:i:s", $remainder);
echo "<br>До конца семестра осталось $remainder<br>";
$cdate=date("Y-m-d H:i:s");
echo "Текущее время: $cdate<br>";

И знаете, что он мне выводит???
До конца семестра осталось 02:04:13
Текущее время: 2009-06-01 00:55:47

Это вообще как??? Понимаю, что 0,5+0,5 - это литр, в смысле, что
где-то тут время по Гринвичу, а где-то по Москве, но... но господа,
почему оно не синхронизуется друг с другом, если я и там и там
сравниваю с time()?
Спасибо заранее!

Ответить   Anarendil Sun, 31 May 2009 23:58:01 +0300 (#866489)