I feel dirty using strtotime, as it seems that it's a function designed for parsing human-readable formats. Also, it could get a bit funny about ambiguous dates and read them as American instead of European (for example).
So I just use a home made function which parses a date format very strictly (using explode() mostly).
Moreover, time zones can cause weirdness, I try to keep everything in GMT if possible.
So I have two functions, DbDateTimeToTime() and TimeToDbDateTime() which convert between a unix timestamp and a mysql date time format (Always in GMT, of course).
If it becomes necessary to display something out of GMT, I still keep it in GMT in the database, just convert for display.
Adding a day to a unix timestamp is of course easy - just add 606024 seconds.
Mark