2010-08-04 134 views
46

Tengo una fecha y hora en una variable. Mi formato es 08/04/2010 22:15:00. Quiero mostrar esto como 10.15 PM. ¿Cómo hacer esto en PHP?Cómo obtener AM/PM desde una fecha y hora en PHP

Gracias de antemano

+0

posible duplicado de [fecha y hora Formato MySQL con PHP] (http://stackoverflow.com/questions/136782/format-mysql- datetime-with-php) – Gordon

+0

Similar: [¿Cómo convertir el tiempo de AM/PM a formato de 24 horas en PHP?] (http://stackoverflow.com/q/16955209/55075) – kenorb

Respuesta

102

es necesario convertir a una marca de tiempo UNIX (usando strtotime) y luego de nuevo en el formato deseado con la función date.

Por ejemplo:

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

Uso strtotime() para hacer que la fecha de una marca de tiempo UNIX.

Para la salida, consulte las diversas opciones de date().

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

No estoy seguro de la mayúscula " H "en la llamada de fecha (es extraño tener 24 horas con AM/PM). Sí, estoy objetando lo que me has ganado. De nuevo. :-) –

+0

@middaparka ¡salud! :) Tienes toda la razón. Corregido –

8

De esta manera:

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

Resultado:

10:15 PM 

Más información:

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

Para (PHP> = 5.2.0):

Usted puede utilizar la clase DateTime. Sin embargo, es posible que deba cambiar el formato de su fecha. No ha probado el tuyo El siguiente formato de fecha trabajará con seguridad: 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 

Sin embargo, en mi opinión, el uso de . como un separador para 10.15 no se recomienda debido a que sus usuarios podrían confundirse o bien se trata de un número o tiempo de formato decimal. La forma más común es utilizar 10:15 PM

6

de flexibilidad con diferentes formatos, utilizar:

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

Comprobar la php manual de opciones de formato adicionales.

3

Código PHP:

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

de salida: 17:03

+0

Respuesta correcta +1. –

0

Es bastante fácil. Asumiendo que tiene un campo (con fecha) con el tipo "timestamp" en su tabla de base de datos ya consultada y desea mostrarlo, tenerlo formateado y también tener AM/PM, todo lo que necesita hacer se muestra a continuación.

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


    ?> 

Nota: Su SALIDA debe mirar lo que algunos como éste en función de la fecha de publicación

21 de de mayo de, 2014 3:05:27 PM

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

Se puede utilizar esta opción para mostrar la fecha en este

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

Por lo general, es mejor explicar una solución en lugar de simplemente publicar algunas filas de código anónimo. Puede leer [Cómo escribo una buena respuesta] (https://stackoverflow.com/help/how-to-answer), y también [Explicar respuestas totalmente basadas en código] (https://meta.stackexchange.com/questions/114762/explaining-entirely-% E2% 80% 8C% E2% 80% 8B-based-answers-answers) –

1

respuesta perfecta para la solución de tiempo en directo AM/PM

<?php echo date('h:i A', time())?> 
Cuestiones relacionadas