Las diferencias las ves en php.net
http://us3.php.net/manual/es/function.mktime.php.Devuelve la marca de tiempo Unix correspondiente a los argumentos dados. Esta marca de tiempo es un entero que contiene el número de segundos entre la Época Unix (1 de Enero del 1970 00:00:00 GMT) y el instante especificado.
http://es1.php.net/strtotime Esta función espera que se proporcione una cadena que contenga un formato de fecha en Inglés US e intentará convertir ese formato a una fecha Unix (el número de segundos desde el 1 de Enero del 1970 00:00:00 UTC), relativa a la marca de tiempo dada en now, o la marca de tiempo actual si now no se proporciona.
http://es1.php.net/timeDevuelve el momento actual medido como el número de segundos desde la Época Unix (1 de Enero de 1970 00:00:00 GMT).
En fin, no tiene ningún sentido utilizar
mktime() si no le vas a proporcionar parámetros. No tiene ningún sentido utilizar
strtotime('-1 day') si puedes hacer -3600*24.
strtotime() es por ejemplo para cuando quieres calcular en que fecha cae el lunes de la tercera semana de XXXX año.
El mas rápido de todos es obviamente
time() ya que no procesa ningún argumento ni nada.
Saludos