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

Sergei_XP

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

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

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

Вопрос не в том, как настроить сервера, а в том, какое поведение является правильным, если предположить, что сервера настроены правильно и ПО без багов
 

AmadMike

Новичок
Результат функции time() выводит время в СЕКУНДАХ с момента эры линукса, если не изменяет память - 01 01 1970. А формат даты и все временные сдвиги осуществляются уже другими функциями, например date
 

phprus

Moderator
Команда форума
AmadMike
Линукс появился в начале 90-х годов. Точно не помню, но вроде гдето в районе 1991 года, а в 1970 году появился UNIX и именно по этому time считает время с начала эры UNIX.
 

Sergei_XP

Guest
То, что timestamp - это кол-во секунд с первого января 70-го года - это понятно
Но вопрос вот в чем: ф-ция time возвращает в Москве количество секунд, прошедших с того момента, когда в Москве отмечали новый 70-й год и до момента вызова, или с того момента, когда 01.01.1970 случилось в Гринвиче - и до момента вызова в Москве ? В Первом случае результат в различных поясах будет в каждый момент одинаков (что подтверждается практикой), во втором - различным (что, к сожалению, тоже подтверждается практикой). В каком из двух случаев практика нарушает теорию ? Какому из двух региональных провайдеров писать письмо "у вас неправильно настроены опции часового пояса для PHP" ?
 

uliss

Новичок
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 :)
 

Sergei_XP

Guest
про UTC почитал...
Итого: два скрипта, независимо от того, в каких часовых поясах они запускаются, при одновременном запуске должны отдать одинаковые числа-результаты time()'а ?
 

uliss

Новичок
Да, date -u должна показывать на всех компах одинаковое время
 
Сверху