2013-06-06 8 views
29

Per esempio, ho un momento in questo formatoCome convertire l'ora da AM/PM a formato 24 ore in PHP?

eg. 

09:15 AM 
04:25 PM 
11:25 AM 

Come convertire a

09:15 
16:25 
23:25 

Attualmente il mio codice è:

$format_time = str_replace(" AM", "", $time, $count); 
if ($count === 0){ 
    $format_time = strstr($time, ' PM', true); 
    $format_time = ...... 
} 

Tuttavia, sembra che ci sono alcuni modo più semplice ed elegante per fare questo?

$time = '23:45'; 
echo date('g:i a', strtotime($time)); 

Come montare il campione sopra nel mio caso? Grazie

risposta

65

prova con questo

echo date("G:i", strtotime($time)); 

o si può provare in questo modo anche

echo date("H:i", strtotime("04:25 PM")); 
6

Se si utilizza un formato Datetime vedere http://php.net/manual/en/datetime.format.php

Si può fare questo:

$date = new \DateTime(); 
echo date_format($date, 'Y-m-d H:i:s'); 
#output: 2012-03-24 17:45:12 

echo date_format($date, 'G:ia'); 
#output: 05:45pm 
+1

Non rilevante a mettere in discussione. La tua risposta è esattamente opposta, ma mi ha aiutato. Grazie! – Parixit

6

È possibile utilizzare questo per 24 ore per 12 ore:

echo date("h:i", strtotime($time)); 

E per viceversa: soluzione

echo date("H:i", strtotime($time)); 
0
$time = '09:15 AM'; 

$chunks = explode(':', $time); 
if (strpos($time, 'AM') === false && $chunks[0] !== '12') { 
    $chunks[0] = $chunks[0] + 12; 
} else if (strpos($time, 'PM') === false && $chunks[0] == '12') { 
    $chunks[0] = '00'; 
} 

echo preg_replace('/\s[A-Z]+/s', '', implode(':', $chunks)); 
0

PHP 5.3+.

$new_time = DateTime::createFromFormat('h:i A', '01:00 PM'); 
$time_24 = $new_time->format('H:i:s'); 

Outpit: 13:00:00

grandi opere con date di formattazione. Verifica This Risposta.

Problemi correlati