2010-08-04 12 views
46

Ich habe eine Datumszeit in einer Variablen. Mein Format ist 08/04/2010 22:15:00. Ich möchte dies wie 10.15 PM anzeigen. Wie macht man das in PHP?Wie bekomme ich AM/PM von einer Datetime in PHP

Vielen Dank im Voraus

+0

möglich Duplikat [Format mysql Datetime mit php] (http://stackoverflow.com/questions/136782/format-mysql- datetime-with-php) – Gordon

+0

Ähnlich: [Wie konvertiert man die Zeit von AM/PM in 24 Stunden Format in PHP?] (http://stackoverflow.com/q/16955209/55075) – kenorb

Antwort

102

Sie müssen es UNIX Zeitpunkt konvertieren (mit strtotime) und zurück in das Format benötigen Sie mit der date Funktion dann.

Zum Beispiel:

$currentDateTime = '08/04/2010 22:15:00'; 
$newDateTime = date('h:i A', strtotime($currentDateTime)); 
17

Verwenden strtotime() das Datum eines UNIX-Zeitstempel zu machen.

Für die Ausgabe, überprüfen Sie die verschiedenen Optionen von date().

$timestamp = strtotime("08/04/2010 22:15:00"); 
date("h.i A", $timestamp); 
+2

Nicht sicher über den Großbuchstaben " H "in der Datumsaufruf (ungerade, um eine 24 Stunden mit der AM/PM zu haben). Ja, ich bin zittrig, wie Sie mich dazu geschlagen haben. Nochmal. :-) –

+0

@middaparka Prost! :) Du hast vollkommen Recht. Korrigiert. –

8

So:

$date = '08/04/2010 22:15:00'; 
echo date('h:i A', strtotime($date)); 

Ergebnis:

10:15 PM 

Mehr Info:

18
$dateString = '08/04/2010 22:15:00'; 
$dateObject = new DateTime($dateString); 
echo $dateObject->format('h:i A'); 
1

Für (PHP> = 5.2.0):

können Sie Datetime-Klasse verwenden. Sie müssen jedoch möglicherweise Ihr Datumsformat ändern. Ich habe deine nicht versucht. Das folgende Datumsformat wird sicher arbeiten: YYYY-MM-DD HH-MM-SS

$date = new DateTime("2010-04-08 22:15:00"); 
echo $date->format("g"). '.' .$date->format("i"). ' ' .$date->format("A"); 

//output 
//10.15 PM 

jedoch meiner Meinung nach, mit . als ein Separator für 10.15 nicht empfohlen, da die Benutzer verwechselt werden könnten dies entweder eine Dezimalzahl oder Zeitformat ist. Die gängigste Methode ist 10:15 PM

6

für Flexibilität mit verschiedenen Formaten zu verwenden, verwenden:

$dt = DateTime::createFromFormat('m/d/Y H:i:s', '08/04/2010 22:15:00'); 
echo $dt->format('g:i A') 

Überprüfen Sie die php manual für weitere Formatoptionen.

3

PHP-Code:

date_default_timezone_set('Asia/Kolkata'); 
$currentDateTime=date('m/d/Y H:i:s'); 
$newDateTime = date('h:i A', strtotime($currentDateTime)); 
echo $newDateTime; 

Ausgabe: 17.03

+0

Richtige Antwort +1. –

0

Es ist ganz einfach. Vorausgesetzt, Sie haben ein Feld (Datum) mit dem Typ "timestamp" in Ihrer Datenbanktabelle bereits abgefragt und Sie möchten es anzeigen, haben es formatiert und haben auch die AM/PM, alles, was Sie tun müssen, wird unten angezeigt.

 <?php 
    echo date("F j, Y h:m:s A" ,strtotime($row_rshearing['dateposted'])); 


    ?> 

Hinweis: Ihre OUTPUT sollte einige schauen, was wie dies am Tag je

posted

21. Mai 2014 15.05.27

8
<?php 
$dateTime = new DateTime('now', new DateTimeZone('Asia/Kolkata')); 
echo $dateTime->format("d/m/y H:i A"); 
?> 

Sie verwenden können um das Datum wie folgt anzuzeigen

22/06/15 10:46 AM 
0
$currentDateTime = $row['date']; 
echo $newDateTime = date('l jS \of F Y h:i:s A', strtotime($currentDateTime)); 
0
$time = strtotime($triprow['trip_start_date']); 
$myFormatForView = date("M-d-y g:i A", $time); 
$time1 = strtotime($triprow['trip_end_date']); 
$myFormatForView1 = date("M-d-y g:i A", $time1); 

echo $myFormatForView; 
echo $myFormatForView1; 
+4

Normalerweise ist es besser, eine Lösung zu erklären, anstatt nur einige Zeilen anonymen Codes zu veröffentlichen. Sie können lesen [Wie schreibe ich eine gute Antwort] (https://stackoverflow.com/help/how-to-answer), und auch [Vollständig Code-basierte Antworten zu erklären] (https://meta.stackexchange.com/fragen/114762/erklären-ganz-% E2% 80% 8C% E2% 80% 8Bcode-basierte Antworten) –

1

perfekte Antwort für AM/PM Live-Zeitlösung

<?php echo date('h:i A', time())?> 
Verwandte Themen