gettimeofday () всегда доступен? - PullRequest
6 голосов
/ 11 августа 2011

Я пробовал Google, php.net и архивы рассылки php, но не могу найти что я ищу Может быть, это очевидно, или, может быть, никто не интересуется это ...

В течение многих лет я использовал microtime () для получения текущего времени, включая микросекунд. Тем не менее, кто-то указал мне на предложение в руководстве страница: «Эта функция доступна только в операционных системах, которые поддерживают системный вызов gettimeofday (). "

И PHP gettimeofday () предлагает такую ​​же ситуацию: «Это интерфейс к gettimeofday (2). "

Но ... в каких системах этот системный вызов недоступен? Некоторый поиск в Google предоставил множество программистов на С, пытающихся получить Реализация gettimeofday () в C на Windows, так как кажется, что включи это. Но в PHP microtime () и gettimeofday () работают просто хорошо на Windows (по крайней мере, ящики, которые я мог бы получить). Кроме того, я просто не могу Похоже, что где-то в Интернете можно найти код PHP, который проверяет существование либо microtime (), либо gettimeofday () до их вызова, и там должно быть много программистов PHP, работающих над Окна коробки так ...

Должен ли я игнорировать предложение в руководстве и просто поверить, что оба функции всегда доступны? Или есть другой кроссплатформенный способ чтобы добраться до системного времени, включая микросекунды, без использования microtime () или gettimeofday ()? Или обе функции будут существовать всегда, но просто не дайте мне микросекунд, если нет системы gettimeofday () звонок доступен?

РЕДАКТ. 1:

http://www.php.net/microtime

"Returns the current Unix timestamp with microseconds.
This function is only available on operating systems that 
support the gettimeofday() system call."

Может быть, это несколько проясняет мою точку зрения.

Ответы [ 2 ]

1 голос
/ 12 августа 2011

Согласно источникам PHP имеет собственную gettimeofday реализацию для Windows.Но нет других доступных портов gettimeofday.Поэтому, за исключением систем на основе UNIX и Windows, любые другие операционные системы не могут использовать microtime()

0 голосов
/ 11 августа 2011

Я интенсивно развивался как для Windows, так и для Linux, и у меня есть работающие PHP-приложения, работающие на обеих платформах.Я никогда не знал об этой проблеме, и это никогда не было проблемой для меня.

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

...