Can you expand on what "off by 10 minutes" means?
You're capturing a generic time in "hh:mm am" format. What are you comparing it to, that says you are off by 10 minutes? When are you comparing it when you find that it's 10 minutes off?
As cbVision mentioned, because you don't specify a timestamp, it's using the server's clock. Is "Your" clock 10 minutes off of the "server's" clock?
The optional timestamp parameter is an integer Unix timestamp that defaults to the current local time if a timestamp is not given. In other words, it defaults to the value of time().