2011-11-21 10 views
7

Sto usando il seguente codice per trasformare un time code universale in qualcosa di un po 'più user friendly.

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

Ma ora ho bisogno di sottrarre 6 ore da meeting_time. Devo farlo dopo il codice sopra o posso farlo funzionare nella stessa data?

Qualcosa di simile:

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

risposta

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

String-a-tempo (strtotime) restituisce un time stamp Unix che è in secondi (da Epoch), quindi y Puoi semplicemente sottrarre i 21600 secondi, prima di convertirlo nuovamente nel formato data specificato.

+0

Grazie per la spiegazione. +1 controllato. – Denoteone

6

Prova questo:

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

Grazie +1 per l'aiuto – Denoteone

+0

La risposta è stata più precisa sul calcolo del tempo per me. Grazie mc10. –

2

si dovrebbe essere in grado di fare questo:

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

altro approccio:

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

Il modo di 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"; 

Per sustract 6 ore:

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