Jump to content


Photo

Formatear fecha en PHP


  • Please log in to reply
19 replies to this topic

#1 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2040 posts
  • LocationSanto Domingo

Posted 18 November 2010 - 06:48 PM

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 posts
  • LocationChilangolandia

Posted 18 November 2010 - 10:03 PM

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
  • 2040 posts
  • LocationSanto Domingo

Posted 18 November 2010 - 11:02 PM

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
  • 2040 posts
  • LocationSanto Domingo

Posted 19 November 2010 - 11:39 AM

Donde estan los PHPeros del foro?
  • 0

#5 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2092 posts
  • LocationRepública Dominicana

Posted 19 November 2010 - 01:22 PM

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
  • 4945 posts
  • LocationMéxico

Posted 19 November 2010 - 01:23 PM

Donde estan los PHPeros del foro?


presente :p
  • 0

#7 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4483 posts
  • LocationVenezuela

Posted 19 November 2010 - 01:26 PM



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 posts
  • LocationChilangolandia

Posted 19 November 2010 - 02:02 PM

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
  • 2040 posts
  • LocationSanto Domingo

Posted 19 November 2010 - 06:47 PM

Es timestamp de firebird
  • 0

#10 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2040 posts
  • LocationSanto Domingo

Posted 19 November 2010 - 07:05 PM

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
  • 4483 posts
  • LocationVenezuela

Posted 19 November 2010 - 08:45 PM

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
  • 4483 posts
  • LocationVenezuela

Posted 19 November 2010 - 09:12 PM

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
  • 2040 posts
  • LocationSanto Domingo

Posted 19 November 2010 - 10:32 PM



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
  • 2040 posts
  • LocationSanto Domingo

Posted 20 November 2010 - 11:44 AM



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
  • 4483 posts
  • LocationVenezuela

Posted 20 November 2010 - 12:29 PM

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
  • 7419 posts
  • LocationRepública Dominicana

Posted 22 November 2010 - 09:25 AM

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

#17 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4483 posts
  • LocationVenezuela

Posted 22 November 2010 - 10:09 AM

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 posts

Posted 22 November 2010 - 12:14 PM



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
  • 2040 posts
  • LocationSanto Domingo

Posted 22 November 2010 - 07:18 PM



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 posts

Posted 23 November 2010 - 04:24 AM

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.