in pratica mktime() accetta come parametri anche valori "fuori dal range" normale... se per esempio crei un timestamp del 32 dicembre 2009, il sistema lo "converte" in 1 gennaio 2010... quindi puoi utilizzarla per fare calcoli tra timestamp e poi usare date() per formattare il tutto: sul manuale ci sono degli esempi anche di calcoli tra differenze di date, per es.:

Codice PHP:
caculate days between two date

<?php
  
// end date is 2008 Oct. 11 00:00:00
  
$_endDate mktime(0,0,0,11,10,2008);
  
// begin date is 2007 May 31 13:26:26
  
$_beginDate mktime(13,26,26,05,31,2007);

  
$timestamp_diff$_endDate-$_beginDate +;
  
// how many days between those two date
  
$days_diff $timestamp_diff/86400;

?>