Resta un segundo de un tiempo determinado

Me gustaría agregar 1 día y luego restar (menos) 1 segundo de un tiempo dado.

Yo si:

$fromDate = date("Ymd", strtotime("2012-09-28")).' 00:00:00'; $date = strtotime(date("ymd H:m:s", strtotime($fromDate)) . " +1 day") - 1; $toDate = date('Ymd H:m:s', $date); echo $toDate; 

pero en lugar de 2012-09-28 23:59:59 vuelve 2012-09-29 00:09:59

¿Qué estoy haciendo mal?

Estás dando vueltas y más vueltas en lugar de llegar al punto en tu código. Aquí está mi solución con los objetos DateTime :

 $time = new DateTime("2012-09-28"); $time->modify("+1 day"); $time->modify("-1 second"); var_dump($time); 

O, si solo necesita el último segundo del día, ¿por qué no simplemente:

 $time = "2012-09-28"; $time .= " 23:59:59"; 

Como es poco probable que cambie la cantidad de segundos / minutos / horas por día.

Si te entiendo bien, solo quieres el último segundo en un día determinado, ¿verdad?

Si ese es el caso, entonces podrías tener:

 $theDate = "2012-09-28"; $fromDate = $theDate." 00:00:00"; $toDate = $theDate." 23:59:59";