2013-06-06 7 views
29

Zum Beispiel, ich habe eine Zeit in diesem FormatWie konvertiert man die Zeit von AM/PM in 24 Stunden Format in PHP?

eg. 

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

Wie es mein Code zu

09:15 
16:25 
23:25 

Zeit zu konvertieren:

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

Allerdings scheint es, gibt es einige, einfacher und eleganter Weg dies zu tun?

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

Wie passt das obige Beispiel in meinem Fall? Dank

Antwort

65

Versuchen mit diesem

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

oder du so versuchen auch

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

Wenn Sie ein Datetime-Format sehen http://php.net/manual/en/datetime.format.php

Sie können dies tun:

$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

Nicht relevant zu hinterfragen. Ihre Antwort ist genau umgekehrt, aber hat mir geholfen. Vielen Dank! – Parixit

6

Sie können diese zu 12 Stunden für 24 Stunden nutzen:

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

Und umgekehrt:

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+ Lösung.

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

Outpit: 13:00:00

Funktioniert hervorragend mit Formatierungsdaten. Überprüfen Sie This Antwort.

Verwandte Themen