Ayuda con PHPExcel y MySQL

deak0n

Os cuento, a la hora de pasar los datos de mi base de datos (MySQL) a excel, me gustaría poder cambiar el formato en la que guarda la fecha, me explico, yo guardé en mi base de datos la hora en este

formato

y es de tipo INT, osea que se guardará en al celda de esta forma: 20130411, siendo los primeros cuatro números el año, los dos siguientes el mes y los dos últimos el día.

Lo guardé de esta manera en la base de datos ya que tengo creé un formulario que le diga al cliente que ponga dos fechas cualesquiera y a partir de esa dos fechas, hago una consulta a la base de datos con un BETWEEN. La fecha, al tener un formato tipo INT y al poner el orden de la fecha en AÑO-MES-DIA me lo saca al excel perfectamente y todo funciona de maravilla.

La duda es si posible que al pasarse los datos de la database al excel, puedo cambiar el orden a DIA-MES-AÑO o simplemente poner un slash ( / ) entre el año, el mes y el día.

Os dejo el trozo de código que se encarga de imprimir los datos al excel:

Code
M

Por qué no guardas la fecha en tipo date?

1 respuesta
deak0n

#2 El tema es que yo tengo echo un formulario que le da a elegir al usuario dos fechas, una inicial y otra final. Luego, a la hora de hacer el SELECT para sacar los datos de la base de datos a un excel, con el between, al ser de tipo INT, me hace el between sin problemas y me saca todos los datos entre esas 2 fechas.

¿Se puede hacer un between con variable tipo date?

1 respuesta
M

#3 Sí, y la fecha en los beetween la pasas con el formato que quieras

1 respuesta
Merkury

#4 BETWEEN funciona también con fechas eh, pero bueno.. Y en excel si haces fecha1 - fecha2 con formato fecha, también te lo hace...

De todas formas si quieres complicarte la vida haz un foreach al resultado de la consulta de extracción de las fechas y con php parsealas al formato dmy y fiesta.

Pero lo más rápido, es almacenar las fechas con formato date y exportar a rasquete.

zoeshadow

Si no quieres trabajar con fechas directamente en tu base de datos, puedes trabajar con ellas como fechas Unix, que con un par de funciones puedes convertir de una fecha cualquiera a Unix y viceversa ( y luego formatearlo con las librerías de fechas que trae PHP ), pero vamos, parece que tu problema se puede resolver con Date o Datetime...

Usuarios habituales