Ir al contenido


Foto

Formatear fecha en PHP


  • Por favor identifícate para responder
19 respuestas en este tema

#1 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 18 noviembre 2010 - 06:48

Hola a todos

Necesito Ponerle formato a una fecha que consigo desde un query con php y firebird, lo que me sale es:

2010-11-14 02:31:49

y quisiera que me saliera por ejemplo 

Sun 14 Nov 2010 02:31:49 PM



El codigo que utilizo es el siguiente:

<td width="210" align="left" valign="top"><?php echo $row["FECHAN"]  //=("D j M Y  g:i:s A "); ?></td>


  • 0

#2 Mixel Adm

Mixel Adm

    Member

  • Miembros
  • PipPip
  • 23 mensajes
  • LocationChilangolandia

Escrito 18 noviembre 2010 - 10:03

Hola a todos Necesito ponerle formato a una fecha  que consigo desde un query, lo que  me sale es2010-11-14 06:16:23  y quiero que salga  sun 14 Nov  2010 06:16:23 AM

asm
  1. <td width="210" align="left" valign="top"><?php echo $row["FECHAN"] //=("D j M Y  g:i:s A "); ?></td>


Que tal

Prueba con esto:

<?php echo date("D j M Y  g:i:s A ",$row["FECHAN"]); ?>

Saludos

  • 0

#3 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 18 noviembre 2010 - 11:02

Gracias por Responder

Habia probado con una idea similar y en mi caso me repetia la fecha actual en todas las filas. Con la forma en que me indicas me repite la siguiente fecha en todas las filas y obviamente esa fecha no corresponde a ninguna de ellas.

Wed 31 Dec 1969 7:33:30 PM


Donde esta el error?
  • 0

#4 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 19 noviembre 2010 - 11:39

Donde estan los PHPeros del foro?
  • 0

#5 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 19 noviembre 2010 - 01:22

Saludos.

Esto me lo paso un amigo, yo desconozco PHP.


php
  1. date_default_timezone_set('America/Los_Angeles');
  2. $date = new DateTime($row["nombre_columna"]);
  3. $date = $date->format('D d M Y h:i:s');



Me dice que es necesario poner la zona horaria.

Espero te sirva.
  • 0

#6 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 19 noviembre 2010 - 01:23

Donde estan los PHPeros del foro?


presente :p
  • 0

#7 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 19 noviembre 2010 - 01:26



php
  1. <td width="210" align="left" valign="top"><?php echo Date('r',$row["FECHAN"])?>



Prueba a ver y nos avisas.
  • 0

#8 Mixel Adm

Mixel Adm

    Member

  • Miembros
  • PipPip
  • 23 mensajes
  • LocationChilangolandia

Escrito 19 noviembre 2010 - 02:02

Gracias por Responder

Habia probado con una idea similar y en mi caso me repetia la fecha actual en todas las filas. Con la forma en que me indicas me repite la siguiente fecha en todas las filas y obviamente esa fecha no corresponde a ninguna de ellas.

Wed 31 Dec 1969 7:33:30 PM


Donde esta el error?


En que formato viene tu fecha, en texto o en Date?


  • 0

#9 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 19 noviembre 2010 - 06:47

Es timestamp de firebird
  • 0

#10 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 19 noviembre 2010 - 07:05

Eduarcol me da la misma fecha que indicaba antes

Wed 31 Dec 1969 7:33:30 PM

. Rolphy estoy tratando de ubicar el codigo, dejame ver como es que funciona.  Gracias por sus respuestas.
  • 0

#11 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 19 noviembre 2010 - 08:45

Bueno ya por lo menos el formato sale. Ahora el problema es otro que no se actualiza la fecha. Publica el codigo completo a ver como generas y recorres la consulta
  • 0

#12 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 19 noviembre 2010 - 09:12

Bueno ya por lo menos el formato sale. Ahora el problema es otro que no se actualiza la fecha. Publica el codigo completo a ver como generas y recorres la consulta
  • 0

#13 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 19 noviembre 2010 - 10:32



php
  1. $query="Select ENTRADADATOS, FECHAN, CENTRAL.CSID, CLIENTES, CENTRAL.EVENTO,EVENTO.DETALLE  from CENTRAL INNER JOIN ACMSUB ON CENTRAL.CSID = ACMSUB.CSID INNER JOIN EVENTO ON CENTRAL.EVENTO=EVENTO.EVENTO
  2. where clientes like '%$nom%' AND (FECHAN BETWEEN '$yearinicio.$mesinicio.$diainicio' AND '$yearfin.$mesfin.$diafin') ORDER BY CENTRAL.CSID,ENTRADADATOS ASC";
  3. $result=ibase_query($conn,$query);
  4. If (!$result){
  5. echo "no se puede mostrar la consulta: $query!";
  6. }
  7. ?>
  8.  
  9. <?php
  10. $i=0;
  11. while ($row = ibase_fetch_assoc($result))
  12. {
  13. $i++   
  14. ?>
  15. </tr>
  16. <tr style=" background-color:#F0F0F0;">
  17.  
  18. <td width="70" align="center" valign="top">
  19. <?php echo $row["ENTRADADATOS"]; ?>
  20. </td>
  21. <td width="210" align="left" valign="top">
  22. <?php
  23. echo ($row["FECHAN"]);
  24. ?>
  25.  
  26. </td>
  27. <td width="50" align="left" valign="top">
  28. <?php echo $row["CSID"]; ?>
  29. </td>
  30.  
  31. <td width="300" align="left" valign="top">
  32. <?php echo $row["CLIENTES"]; ?>
  33. </td>
  34. <td width="70" align="left" valign="top">
  35. <?php echo $row["EVENTO"]; ?>
  36. </td>
  37. <td width="400" align="left" valign="top">
  38. <?php echo $row["DETALLE"]; ?>
  39. </td>
  40.  
  41. </tr>
  42.  
  43. <?php
  44.  
  45. }
  46. echo $fechainicio,$i;
  47.  
  48. ?>


  • 0

#14 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 20 noviembre 2010 - 11:44



php
  1. $date= date_create($row["FECHAN"]); //date_create();
  2. echo date_format($date, 'D j M Y  g:i:s A') . " ";


Esta es la forma en que funciona correctamente y me sale asi:

Thu 18 Nov 2010 10:21:29 PM


  • 0

#15 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 20 noviembre 2010 - 12:29

Para que salga en español podemos trabajar con los locale de PHP



php
  1. $fecha = date('U',strtotime($row["FECHAN"]));
  2. setlocale(LC_ALL,"es_ES@euro","es_ES","esp");
  3. echo strftime("%A %d de %B del %Y %I:%M:%S", $fecha);



En la primera linea tomamos tu fecha y la convertimos a formato timestamp de unix para que lo reconozca la funciòn (esto era lo que sucedia al principio de este post que el formato de la fecha no lo reconocia la función).

Luego establecemos el locale que son configuraciones de php para trabajar en el idioma local, ponemos tres opciones para asegurarnos que el servidor tenga configurado cualquiera de las tres.
Por ultimo mostramos la fecha con la funcion strftime y listo, la fecha en español :D:D
  • 0

#16 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 22 noviembre 2010 - 09:25

Ah vaya, no era mejor usarlo desde la consulta con la función DATE_FORMAT ???
  • 0

#17 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 22 noviembre 2010 - 10:09

Ah vaya, no era mejor usarlo desde la consulta con la función DATE_FORMAT ???


Luego no aprendiamos PHP jejeje
  • 0

#18 tacubo

tacubo

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 130 mensajes

Escrito 22 noviembre 2010 - 12:14



delphi
  1. <?php
  2. $fecha='2010-10-25 15:05:38';
  3. echo date("D d M Y H:i:s A ",strtotime($fecha))."<br>"; 
  4. ?>




porque no pruebas de la siguiente manera
obviamente en vez de fecha metes el dato que te
traes de tu consulta espero te sirva
  • 0

#19 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 22 noviembre 2010 - 07:18



delphi
  1. <?php
  2. $fecha='2010-10-25 15:05:38';
  3. echo date("D d M Y H:i:s A ",strtotime($fecha))."<br>"; 
  4. ?>




porque no pruebas de la siguiente manera
obviamente en vez de fecha metes el dato que te
traes de tu consulta espero te sirva


Wed 31 Dec 1969 19:00:00 PM


Es lo que me sale, si lo pongo asi.
  • 0

#20 tacubo

tacubo

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 130 mensajes

Escrito 23 noviembre 2010 - 04:24

que raro yo lo probe antes de mandartelo y aun asi lo tengo
y me sale la fecha que le mando con el formato que lo quieres
podrias poner en la forma en la que lo pruebas o el codigo completo para checarlo porque a mi me funciono como te dije
  • 0




IP.Board spam blocked by CleanTalk.