Título: Decodificar fecha en dateformat de excel [Solucionado] Publicado por: WHK en 28 Abril 2009, 02:53 am Tengo un pequeño problema y es que tengo un valor de una fecha: "39818" que significa "2009-01-05" y necesitaba hacer la función que hiciera el calculo pero ando un poco perdido.. estuve buscando información acá:
http://support.microsoft.com/kb/214094 Citar Excel almacena todas las fechas como enteros y todas las horas como fracciones decimales. Con este sistema, Excel puede sumar, restar o comparar fechas y horas como cualquier otro número, y todas las fechas se manipulan utilizando este sistema. En este sistema, el número de serie 1 representa 1/1/1900 12:00:00 a.m. Las horas se almacenan como números decimales entre ,0 y ,99999, donde ,0 es 00:00:00 y ,99999 es 23:59:59. Los enteros de fecha y las fracciones decimales de hora pueden combinarse para crear números que tengan una parte decimal y una parte entera. Por ejemplo, el número 32331,06 representa la fecha 7/7/1988 y la hora 1:26:24 a.m. Ahora no se como podría calcular las fechas para ir corriendo dia, mes y año según el número que me arroja el excel. Este problema lo tube al importar archivos con el formato de la fecha cambiado y debo compatibilizarlo. Lo otro sería pasar de ese formato a getmicrotime() y de ahi convertir a date() pero no se cual sería la equivalencia, al parecer los decimales debo convertirlos en entro pero no estoy seguro.. mientras tanto que hago pruebas y comparar fechas con ambos formatos espero que alguien me pueda dar una orientación. Si lo resuelvo antes igual lo dejaré posteado. Gracias. Título: Re: Decodificar fecha en dateformat de excel Publicado por: WHK en 28 Abril 2009, 04:11 am Bueno, ya lo solucioné..
estuve buscando como trabajaba el formato time de unix asi que puse Código y así hasta llegar a 10000 que era el valor por dia ya que el resto son minutos, horas, segundos y centecimas de segundo.. pero pude ver un desface de 1 dia por cada 135 dias asi que no me sirvió :P.. busqué y encontré muchas funciones como por ejemplo strftime, mktime, gmmktime, etc.. al final que pude ver una que meajustaba a lo que necesitaba: "mktime". Pude ver que podias asignar una variable con una fecha en formato unix: Código Pero intenté dar valores nulos y solo proporcionar el dia, no sabia si funcionaría ya que se supone el dia debería ser del 1 al 31 o por lo menos no lo especificaba en ningun lado pero lo intenté... Código Biieennn!! ahora solo es cuestión de restarle el desface de fecha entre el primer dia del formato unix al primer dia del formato excel: http://support.microsoft.com/kb/214094 Citar el número de serie 1 representa 1/1/1900 pruebo..Código Tengo la fecha "Dec-01-1999" y "1/1/1900" asi que lo resté en valores de dias y saqué el valor "36495" :D Ya con estos datos puedo hacer mi función: Código
Uso: Código
Ojala que a alguien le pueda servir como a mi. Título: Re: Decodificar fecha en dateformat de excel [Solucionado] Publicado por: WHK en 28 Abril 2009, 04:26 am Jugando un poco de como sumar meses al formato excel y pasarlo al formato unix :P
Código
Esque se supone que por cada quota de pago debe aumentar la fecha a un mes :P para que la persona pueda pagar una quota mensual y los datos de todos los clientes están en archivos excel mientras que migran a un sistema php. |