Question

I've tried Google, php.net and the php mailinglist's archives, but I can't find what I'm looking for. Maybe it's obvious, or maybe nobody wonders about this...

For years, I've used microtime() to get the current time including the microseconds. However, somebody pointed me at a sentence in the manual page: "This function is only available on operating systems that support the gettimeofday() system call."

And PHP's gettimeofday() suggests the same situation: "This is an interface to gettimeofday(2)."

But... what kind of systems then don't have this system call available? Some googling around provided lots of C programmers trying to get a gettimeofday() implementation in C on Windows, since it doesn't seem to include it. But PHP's microtime() and gettimeofday() seem to work just fine on Windows (at least the boxes I could get to). Also, I just can't seem to find PHP code anywhere on the web that seems to check the existence of either microtime() or gettimeofday() before they call it, and there have to be lots of PHP programmers out there working on Windows boxes so...

Should I ignore the sentence in the manual and just trust that both functions are always available? Or is there another cross-platform way to get to the system time, including the microseconds, without using microtime() or gettimeofday()? Or will both functions just always exist, but just not give me microseconds if there is no gettimeofday() system call available?

EDIT 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."

Maybe this clarifies my point somewhat.

Was it helpful?

Solution

According to sources PHP has its own gettimeofday implementation for Windows. But there's no other ports of gettimeofday available. So except UNIX based systems and Windows, any other operating systems cannot use microtime()

OTHER TIPS

I have developed extensively on both windows and linux and have working PHP applications running on both platforms. I have never been aware of this issue and it has never been a problem for me.

I would regard this as a bridge to cross if you get to it. A lot of time and energy could go into finding a solution for what seems to me to be a non problem. I reccomend that you ignore the sentence in the manual until this actually becomes an issue for you rather than wasting resources on the off chance that it could happen.

Now that you have made me aware of this issue I will follow my own advice and forget about it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top