One of the most reliable ways is to use the UNIX timestamp. If you write:
$now = date("U")
Then $now is set to the number of seconds since UNIX began, which is a sizeable number. I think you'll need a BIGINT to store it.
Then, when you retrieve the timestamp from your DB, you fire it at the date() function, sending the formatting arguments in the string, and your retrieved timestamp after, so...
$insertedtime = msyql_result(mysql_query("SELECT timestamp FROM table WHERE 1"), 0, "timestamp");
echo date("dS F Y", $insertedtime);
The joy of this is that you can apply time zone modifiers to the time stamp by enclosing the maths inside another set of brackets. I.e. if your server is in the eastern US, and your reader is in the UK, you want to add 5 hours, so you would do:
echo date("dS F Y", ($insertedtime + (5 * 60 * 60)));
See here for more info on the date() function..