Um, I'm not sure if
$three_mnth = date('m - d - Y', mktime(0, 0, 0, date('m')+3, date('d'), date('Y')));
is better than
$three_mnth=date('m - d - Y', strtotime('+3 months'));
. The latter is shorter and more obvious in its intention - so much so that the fact it's twice as fast is even more irrelevant than usual. The advantage still holds even if you optimise three of those date calls into one like
list($m,$d,$y) = explode(':', date('m:d:Y'));
$three_mnth = date('m - d - Y', mktime(0, 0, 0, $m+3, $d, $y));