2011-11-21 14 views
7

Estoy usando el siguiente código para transformar un código de tiempo universal en algo un poco más fácil de usar.

$meeting_time = date('g:i a', strtotime($time_date_data)); 

Pero ahora necesito restar 6 horas de meeting_time. ¿Debo hacerlo después del código anterior o puedo trabajarlo en la misma función de fecha?

Algo así como:

$meeting_time = date('g:i a' - 6, strtotime($time_date_data)); 

Respuesta

18
$meeting_time = date('g:i a', strtotime($time_date_data) - 60 * 60 * 6); 

String-a-tiempo (strtotime) devuelve un Sello de tiempo de Unix que está en segundos (desde Época), por lo que Puede simplemente restar los 21600 segundos, antes de convertirlo al formato de fecha especificado.

+0

Gracias por la explicación. +1 marcado. – Denoteone

6

Prueba esto:

// 6 hours, 3600 seconds in an hour 
$meeting_time = date('g:i a', strtotime($time_date_data) - 6 * 3600); 
+0

, gracias +1 por la ayuda – Denoteone

+0

Esta respuesta fue más precisa en el cálculo de tiempo para mí. Gracias mc10. –

2

usted debería ser capaz de hacer esto:

$meeting_time = date('g:i a', strtotime($time_date_data)); 
date_add($meeting_time, - date_interval_create_from_date_string('6 hours')); 
5

Otro enfoque:

$meeting_time = date('g:i a', strtotime('-6 hours', strtotime($time_date_data))); 
1

La forma de OO PHP:

$date = new DateTime(); // current time 
echo 'Current: '. $date->format('Y-m-d H:i:s') . "\n"; 
$date->sub(new DateInterval('PT3H55M10S')); 
echo $date->format('Y-m-d H:i:s') . "\n"; 

Para de sustraerse 6 hrs:

$date = new DateTime('2017-01-20'); // pass $time_date_data to here 
$date->sub(new DateInterval('PT6H')); 
Cuestiones relacionadas