Должен ли зависеть от часового пояса результат ф-ции time() ?

  • Автор темы Автор темы Sergei_XP
  • Дата начала Дата начала

Sergei_XP

Guest
Должен ли зависеть от часового пояса результат ф-ции time() ?

что такое "current Unix timestamp" (ф-ция time) ?
Описание в мануале:
time -- Return current Unix timestamp

Ситуация такая:
у меня два сервера, допустим, в Москве и Екатеринбурге
На них одновременно запускается скрипт, просто выводящий результат ф-ции time()
На одной паре серверов результат одинаковый, на другой же - разный (отличается как раз на разницу в часовых поясах)

Вопрос не в том, как настроить сервера, а в том, какое поведение является правильным, если предположить, что сервера настроены правильно и ПО без багов
 
Результат функции time() выводит время в СЕКУНДАХ с момента эры линукса, если не изменяет память - 01 01 1970. А формат даты и все временные сдвиги осуществляются уже другими функциями, например date
 
AmadMike
Линукс появился в начале 90-х годов. Точно не помню, но вроде гдето в районе 1991 года, а в 1970 году появился UNIX и именно по этому time считает время с начала эры UNIX.
 
То, что timestamp - это кол-во секунд с первого января 70-го года - это понятно
Но вопрос вот в чем: ф-ция time возвращает в Москве количество секунд, прошедших с того момента, когда в Москве отмечали новый 70-й год и до момента вызова, или с того момента, когда 01.01.1970 случилось в Гринвиче - и до момента вызова в Москве ? В Первом случае результат в различных поясах будет в каждый момент одинаков (что подтверждается практикой), во втором - различным (что, к сожалению, тоже подтверждается практикой). В каком из двух случаев практика нарушает теорию ? Какому из двух региональных провайдеров писать письмо "у вас неправильно настроены опции часового пояса для PHP" ?
 
man 2 time:
Код:
DESCRIPTION
       time() returns the time since the Epoch (00:00:00 [b]UTC[/b], January 1, 1970), measured in seconds.

       If t is non-NULL, the return value is also stored in the memory pointed to by t.

RETURN VALUE
       On success, the value of time in seconds since the Epoch is returned.  On error, ((time_t)-1) is returned, and errno is
       set appropriately.
А также посмотреть в Вики про UTC :)
 
про UTC почитал...
Итого: два скрипта, независимо от того, в каких часовых поясах они запускаются, при одновременном запуске должны отдать одинаковые числа-результаты time()'а ?
 
Да, date -u должна показывать на всех компах одинаковое время
 
Сверху