Unix Timestamp (UTC) и Java UTC одинаковы?Можем ли мы сравнить? - PullRequest
2 голосов
/ 25 октября 2011

Боюсь, это может показаться дублированием многих вопросов в этом же контексте, но я не смог найти в этом ответов.

Я хочу сравнить два UTC.Один генерируется в Java, а другой в PHP.Я нахожу оба UTC (строки миллисекунд) совершенно разными.

Реальный случай - это расчет срока действия авторизации.Я могу допустить 3-минутный срок действия токена.Токен может приходить с любого локального сервера по всему миру.

Может ли кто-нибудь предложить для этого soln? ...

спасибо за вашу помощь

Ответы [ 2 ]

6 голосов
/ 25 октября 2011

PHP timestamp - это число секунд со времен Unix.Библиотеки Java используют число миллисекунд со времен Unix.Поэтому я ожидаю, что значение PHP будет одной тысячной от значения Java.

Но да, это одна и та же эпоха - оба UTC, обе полночи 1 января 1970 года, в календаре ISO.Если серверы договорились о времени в разумных пределах, у вас все будет хорошо.Однако 3 минуты - это относительно небольшое окно - насколько вы уверены, что все задействованные машины синхронизируются с сетевым сервером времени достаточно часто?

1 голос
/ 25 октября 2011

Убедитесь, что они оба на самом деле миллисекунды, поскольку "время unix" традиционно в секундах.

В противном случае, да, "секунды с начала UNIX" должны совпадать,Вы рассчитываете это в Java и PHP.Вы можете опубликовать код, если не уверены, что сделали это правильно.

Если все сделано правильно, убедитесь, что ваши часы синхронизированы (например, с ntp).Это очень распространенная причина, при которой такие условия, как «должно быть в течение 3 минут», внезапно проваливаются.

...