First make sure your variables are exactly the same.
Second, you're going to get funny results using leading zeros on those numbers. Using your example of $start = mktime(00, 00, 00, 09, 01, 04);, if you ran that through the date command, you'd see the wrong date come out.
[root@dragonbox root]# php -r '
$start = mktime(00, 00, 00, 09, 01, 04);
echo date("m/d/Y", $start);
'
12/01/2003
[root@dragonbox root]#
Where as if you strip the leading zeros, it'll come out right.
[root@dragonbox root]# php -r '
$start = mktime(0, 0, 0, 9, 1, 04);
echo date("m/d/Y", $start);
'
09/01/2004
[root@dragonbox root]#