Buenas, la verdad no se porque tanta gente se hace problemas con las fechas en PHP... o mejor dicho, sí se porque. La mayoría ignora o deja de lado la potencia de la función mktime...
De hecho Marlon, no se como haces los cálculos, pero te aseguro que para calcular fechas la función mktime, es maravillosa!
La definición de la función es la siguiente:
int mktime ( [int hora [, int minuto [, int segundo [, int mes [, int dia [, int anyo [, int es_dst]]]]]]] )
Esta función nos devuelve un timestamp, lo que significa como decía gnfrs, una cifra que representa los segundos que pasaron entre el Epoch Unix (1/1/1970 00:00:00 GMT) y los valores especificados.
Dicha función también sirve para calcular con cifras negativas, por ejemplo se puede calcular la fecha anterior al día de hoy:
mktime(0,0,0, date('d')-1 ,7,2006); = 1149649200
si lo usamos con date:
date("d/m/Y", mktime(0,0,0, date('j')-1 ,7,2006)); = 07/06/2006
De esta forma se puede hacer una gran convinación de fechas..... Y como dijo gnfrs, la fecha cuyo timestamp es 0, varía según la pc o mejor dicho, según el sistema operativo.
De hecho, de esta forma, pueden sumarse y restarse fechas:
$a = mktime(0,0,0, 1,2,2006);
$b = mktime(0,0,0, 1,1,2006);
$c = mktime(0,0,0, 1,5,2006);
date("d-m-Y",($a-$b)+$c); = 06-01-2006
O sea, nos muestra el 5 de enero + 1 día, que es la diferencia entre el 2/1 y el 1/1
Altareum.