Hola,
Al principio pense que era un bug, porque hacia:
Código PHP:
echo '<br>'.date('Y-m-d',$fecha1).'<br>'.date('Y-m-d',$fecha2);
y sacaba fechas disitintas a las que habias metido en el mktime.
Luego tuve una "feliz idea" y quite los 0 de las cifras de 2 digitos:
Código PHP:
$fecha1 = mktime(0,0,0,1,7,2004);
$fecha2 = mktime(0,0,0,2,9,2004);
$dias = round(($fecha2 - $fecha1)/86400);
echo $dias;
y salio el resultado correcto.
Y luego recorde que en PHP un numero que empieza por 0 es un numero octal (en base 8), en lugar de un numero decimal (en base 10). Y en octal el digito 9 no existe, con lo que 09 no es un numero octal valido, con lo que estabas especificando 2,0,2004, o lo que es lo mismo, el 31 de enero, 24 dias despues del 7 de enero.
Saludos.