2011-04-24 59 views

Respuesta

23

Reste 12 horas y 30 minutos de un DateTime en PHP:

$date = new DateTime(); 
$tosub = new DateInterval('PT12H30M'); 
$date->sub($tosub); 

la P significa Período. La T significa Timespan.

Consulte DateTime, DateTime::sub y DateInterval en el manual de PHP. Tendrá que configurar el DateTime en la fecha y hora apropiadas, por supuesto.

0

Almacénelo en un objeto DateTime y luego utilice el método DateTime::sub para restar el intervalo de tiempo.

-1
+2

Eso no es muy útil en este caso. Él realmente debería estar usando un objeto 'DateTime'. –

+0

Sí, lo actualicé ... de hecho vi varias preguntas de él aquí y allá sobre el objeto datetime, así que será útil para él. –

2

Trate strtotime() función:

$source_timestamp=strtotime("Sat, 30 Apr 2011 05:00:00 -0400"); 
$new_timestamp=strtotime("-12 hour 30 minute", $source_timestamp); 
print date('r', $new_timestamp);
3

intento con:

$date = new DateTime('Sat, 30 Apr 2011 05:00:00 -0400'); 
echo $date->format('Y-m-d H:i:s') . "\n"; 
$date->sub(new DateInterval('PT12H30M')); 
echo $date->format('Y-m-d H:i:s') . "\n"; 

// Resultado

2011-04-30 05:00:00 
2011-04-29 16:30:00 
1

tratar de usar esto en vez

//set timezone 
 
date_default_timezone_set('GMT'); 
 

 
//set an date and time to work with 
 
$start = '2014-06-01 14:00:00'; 
 

 
//display the converted time 
 
echo date('Y-m-d H:i',strtotime('+1 hour +20 minutes',strtotime($start)));

0

Utilizando simplemente strtotime

echo date("Y-m-d H:i:s",strtotime("-12 hour -30 minutes")); 

Usando DateTime clase

$date = new DateTime("-12 hour -30 minutes"); 
echo $date->format("Y-m-d H:i:s"); 
Cuestiones relacionadas