There has to be some kind of bug in your PHP version.
mktime with $mday + 3 and the other calculation I posted are the SAME THING. Just different ways of doing it.
The expire calculation is simply the time right now plus 3 days. 86399 seconds is 3 days.
I am just trying to figure out why your server is doing 10 days not 3 when the code math whatever you want to call it is all 3 days.