SC> Very convoluted calculation as others have noted. As to why it is SC> "off", you are casting one part of the statement to an integer thus SC> truncating the microseconds but are not doing the same on the other SC> side of the calculation.
It wasn't the microsecond difference I asked about, it was the 6 hour difference.
The original, ancient code I used needed to return integer seconds. And it always gave answers consistant with date +%s.
What I haven't determined is why converting back is off by 21600 seconds.
What timezone is your server set to - and/or the client requesting the calculation?
I haven't looked to see if that is a plausible explanation but if you are +/- 6hrs from UTC...