Foros del Web » Programando para Internet » PHP »

Novato. Cambio de formato de fecha para Script de terceros.

Estas en el tema de Novato. Cambio de formato de fecha para Script de terceros. en el foro de PHP en Foros del Web. hola!. Estoy implementando un script de Libro de Visitas, de un alemán. Todo funciona perfectamente pero, el script muestra la fecha de cada firma en ...
  #1 (permalink)  
Antiguo 06/01/2005, 18:43
 
Fecha de Ingreso: septiembre-2003
Mensajes: 32
Antigüedad: 20 años, 7 meses
Puntos: 0
Novato. Cambio de formato de fecha para Script de terceros.

hola!. Estoy implementando un script de Libro de Visitas, de un alemán. Todo funciona perfectamente pero, el script muestra la fecha de cada firma en el formato AÑO-MES-DIA y quisiera que la muestre como DIA-MES-AÑO.

No es tan simple, ya que el script toma el formato de Fecha que fija la Base de Datos. Como sabrán, no se puede modificar dicho parámetro. :(

Sin embargo, a traves de un par de comunicaciones que tuve con él, me explicó que puedo modificar la manera de mostrar la fecha antes de mostrarla. O sea, que el script lea la fecha desde la Base de Datos, y antes de mostrarla, cambiarle el formato.

Me dijo que no tenía tiempo de hacerlo él mismo por mi. Entonces decidí acudir a los que más saben, es decir: al foro.
Me explicó que tengo que modificar la línea 140 del archivo index.php... y me dijo que si sabía de php sería sencillo, pero lamentablemente PHP es un campo muy poco explorado por mi.

Realmente espero que alguien entendido pueda darme una mano con esto, ya que es lo único que me falta para poder utilizar el Libro de Visitas. Gracias.

La línea en cuestión es la siguiente:
140 echo "<p class=\"entry3date\">$row->gb_entry_date <a href=\"sign.php?id=$row->gb_number&todo=comment&name=$row->gb_fullname\" target=\"_self\" onFocus=\"if(this.blur)this.blur()\">";

También me pueden contactar a [email protected]
Mil Gracias.
  #2 (permalink)  
Antiguo 07/01/2005, 06:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si hablas de una tal línea 140 dentro de un contexto de un script completo .. sería ideal que pusieras por lo menos la referencia de ese script completo (link? .. código? .. )

Te lo comento .. por qué hay varias soluciones para tu problema .. Sería mucho más optimo modificar la consulta SQL que se está haciendo en alguna parte de dicho script (pues se ve por ahí un tal $row-> .. que supongo que saldrá de una consulta a una BD? ..)

También puedes trabajar:
$row->gb_entry_date

con explode() (www.php.net/explode ) para separar tu fecha y de ahí componerla (concatenando) para darle tu formato ..

Tienes un ejemplo en las FAQ's de este foro también ...

Insisto que con SQL es más simple .. más óptimo y no hay que tocar para nada más código PHP ...

Un saludo,
  #3 (permalink)  
Antiguo 07/01/2005, 13:27
 
Fecha de Ingreso: septiembre-2003
Mensajes: 32
Antigüedad: 20 años, 7 meses
Puntos: 0
Caramba!.... chino intermedio es lo que entendi de lo que explicastes.
Perdon por no dar mas datos sobre el codigo. Pensé que serviría como referancia solo la linea 140.

A decir verdad me da lo mismo el metodo a emplear, con tal que funcione

He puesto el código en un archivo de texto en el siguiente link:
Codigo Script index.php

Desde ya mil gracias Cluster. Quedaré en deuda contigo.
  #4 (permalink)  
Antiguo 10/01/2005, 06:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usando SQL y su función DATE_FORMAT podrías hacer en esas 3 consultas SQL que se ven ahí (que se selecciona una en función de una condición ..)

SELECT *,DATE_FORMAT(gb_entry_dat,'%d-%m-%Y') AS mi_fecha FROM .....

Bajo $row->mi_fecha .. tendrías tu fecha formateada con el formato dia-mes-año o como gustes. SI quieres usar otro formato .. sólo lee la documentación de Mysql y de esa función SQL:

http://dev.mysql.com/doc/mysql/en/Da...functions.html

Un saludo,
  #5 (permalink)  
Antiguo 10/01/2005, 13:59
 
Fecha de Ingreso: septiembre-2003
Mensajes: 32
Antigüedad: 20 años, 7 meses
Puntos: 0
Holass... "al parecer" no es tan complicado... sin embargo no se bien donde agregar/cambiar el código. Disculpa que sea tan tonto, pero es por mi "casi total" ignorancia en la programación PHP.
He subido el archivo index "intacto" dentro de un .zip para que puedas hacerme referencias con numeros de linea.
Archivo ZIP con index.php

Las 3 consultas a las que te referís... son las que empiezan en la línea 145?
Ese codigo que escribiste... ¿que significa el *? - ¿que sigue despues del From? - Bajo $row->mi_fecha ¿cual de los $row?

Estube leyendo un poco el enlace que me diste. Hay un tipo que he hecho algo muy similar a lo que quiero, aunque tampoco sé donde ubicarlo. Escribe lo siguiente, pero que tampoco sé donde implmentarlo:
Cita:
When selecting a timestamp datatype from a table
and want adjust to a timezone (this example is
from pacific time to EST):
SELECT date_format(DATE_ADD([timestampcol],
INTERVAL 3 HOUR), '%M %e, %Y at %H:%i EST') FROM
[db table name];
En un cuadro también veo una función que a lo mejor puede ser útil: Function Call 'GET_FORMAT(DATE,'EUR')' Result '%d.%m.%Y'

....

Resumiendo... habría alguna posibilidad que me escribas el código que debo agregar/modificar y en que líneas? Sé que te estoy pidiendo que lo hagas por mi, pero resulta que eres la única persona que se ha interesado en ayudarme y que tiene el conocimiento necesario......... Mil gracias
  #6 (permalink)  
Antiguo 10/01/2005, 15:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
De SQL .. el * signifca "dame todos los campos=columnas de la tabla que hace referencia en FROM ..."


Escribe textualmente esa extructura en todos esos SELECT * .... que ahí tienes ..

Y en tu código linea no secuantos .. donde decía:
echo "<p class=\"entry3date\">$row->gb_entry_date <a href=\"sign.php?id=$row->gb_number&todo=comment&name=$row->gb_fullname\" target=\"_self\" onFocus=\"if(this.blur)this.blur()\">";

ahora usas:

echo "<p class=\"entry3date\">$row->mi_fecha <a href=\"sign.php?id=$row->gb_number&todo=comment&name=$row->gb_fullname\" target=\"_self\" onFocus=\"if(this.blur)this.blur()\">";

que es el nuevo "alias" que le hemos dado a esa función que hemos aplicado en la sentencia SQL (en las 3).


Un saludo,
  #7 (permalink)  
Antiguo 11/01/2005, 19:00
 
Fecha de Ingreso: septiembre-2003
Mensajes: 32
Antigüedad: 20 años, 7 meses
Puntos: 0
Bueno... he hecho lo que me dijiste y "desaparecieron las firmas del libro de visitas" (no problema: volvi a poner el archivo original y aparecieron nuevamente)

Voy a citar las palabras del autor de este script a ver si te sirve de algo:
Cita:
you're absolutely right, the date form is set in the database (it's the iso-form) but you could change this the moment you fetch the date from the database. it's line 140 in index.php. if you know something of php that wouldn't be a problem, some parsing and testing, that's it.
A lo mejor, se refiere a darle formato a "gb_entry_date" en el momento de mostrarlo en la linea 140. Que opinas? O habrá que cambiar algo en el código que me diste.........

Última edición por Lenyman; 11/01/2005 a las 19:50
  #8 (permalink)  
Antiguo 13/01/2005, 05:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. por mi parte te comenté una solución .. usando SQL .. ahora, que el campo que "suponía" que guarda la fecha no sea ese .. tal vez pase eso ..pero, tendrás que verlo tu (yo no he probado ese script .. y parece que ni el autor pone mucha interes en tal vez mejorar su própio script haciendo que las fechas se puedan mostrar en otros formatos) ..

Un saludo,
  #9 (permalink)  
Antiguo 13/01/2005, 12:50
 
Fecha de Ingreso: septiembre-2003
Mensajes: 32
Antigüedad: 20 años, 7 meses
Puntos: 0
Esta bien Cluster....... te has portado muy amable conmigo y te lo agradezco Muchas gracias por tu tiempo!!!!

Esperaré a que la solución me llegue de manera divina en algún sueño o a lo mejor, a alguien mas de esta comunidad se le ocurre algo que funcione.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:32.