Hola a todos,
Tengo una fecha con este formato en un campo:2/3/2012
y necesitaría transformarla a 20120302
¿cómo sugerís hacerlo?
Gracias por adelantado
| ||||
Respuesta: formato de fechas
Código PHP:
Ver original
__________________ Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives |
| |||
Respuesta: formato de fechas Cita: Gracias, lo voy a probar y os digo algo.
Iniciado por h2swider ![]()
Código PHP:
Ver original |
| |||
Respuesta: formato de fechas No reinventen la rueda. 1 línea usando funciones nativas de php de fecha/hora. Código PHP:
__________________ Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :( |
| |||
Respuesta: formato de fechas No corrigas tonterías. Puse el m antes que el d: Código PHP: ![]()
__________________ Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :( |
| ||||
Respuesta: formato de fechas No se si lo vera o no, es una buena costumbre probar cosas antes de compartirlas. Mas sabiendo que muchos en el foro tienen conocimientos sumamente básicos y la mayoría de las veces se limitan a copiar y pegar.
__________________ Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives |
| |||
Respuesta: formato de fechas Cita: Gracias a los dos. Normalmente no solo copio y pego sino que miro cómo lo habéis hecho para que me sirva para otras veces.Gracias de verdad. Por cierto, funcionó perfecto ![]() |
| |||
Respuesta: formato de fechas Hola otra vez, de nuevo tengo un caso inexplicable para mí. Después de haber probado el otro día el código que me dábais y que funcionaba, ahora resulta que me da todo el rato la misma fecha: 19700101. La fecha que quiero convertir está en una variable que si la muestro mediant echo, me da 4/3/2012. ¿Por qué me pasa esto? Más datos: Cuando en la variable que le paso el día tiene un dígito va bien pero si tiene 2 dígitos siempre arroja el mismo número: 19700101 Gracias. Última edición por jota2; 21/03/2012 a las 03:11 |
| |||
Respuesta: formato de fechas Cita: Finalmente parece que el código que funciona correctamente es el de h2swider así que igual es mejor "reinventar la rueda".
Iniciado por h2swider ![]()
Código PHP:
Ver original Gracias a todos ![]() |
| |||
Respuesta: formato de fechas El problema es que '2/3/2012' es ambiguo. Es d/m/Y? O m/d/Y? En el segundo caso, 31 como primer argumento no tendría sentido, porque sólo hay 12 meses. Es por esto que te da la fecha inicial Unix. Ambiguedades similares ocurrirían si usásemos 2 dígitos para el año en lugar de 4. Ésta deficiencia es mencionada en la [URL="http://php.net/manual/es/function.strtotime.php"]entrada de strtotime en el manual oficial[/URL]. Para esto existe la muy útil e inusualmente inutilizada [URL="http://www.php.net/manual/es/class.datetime.php"]clase DateTime[/URL], la navaja suiza de la fecha en PHP >= 5.3.0. Con sus métodos createFromFormat y Format podemos especificar y mostrar una fecha, respectivamente.
Código PHP:
Ver original La salida producida será:
Código HTML:
Ver original Podemos apreciar que el parseador strtotime funciona para todos los casos, excepto en '31/03/2012'. Esto está explicado en la entrada del manual de strtotime, se debe a que la barra implica formato americano y 31 no es un mes válido. Sin embargo '31-03-2012' es correctamente convertido tomando 31 como día. En el parseador DateTime, como en los argumentos pusimos Y en lugar de y, espera 4 dígitos de año y al recibir sólo 2 convierte el año a 0012. Como nuestro formato contempla barras y no guiones, muere al intentar procesar el segundo juego de fechas. Claramente no es para nada indulgente, y si quisiésemos arreglar estas fallas deberíamos hacer un poco más inteligente a nuestra función. Recapitulando:
Código PHP:
Ver original Su salida:
Código HTML:
Ver original Ambos paradigmas producen la misma salida, y se pueden encadenar los 2 métodos en el paradigma OO como en el primer ejemplo, o primero asignarlo a una variable y luego mostrar con formato esa variable. Difieren en el tratamiento de errores, pero me imagino que las excepciones se escapan de tu conocimiento. |
Etiquetas: |