Función PHP para transformar fechas formateadas a unixtime.
Función para transformar fechas formateadas a unixtime. En este historico momento son las:
1 2 3 4 |
Unixtime es el tiempo en segundos desde el 1/1/1970 y es muy útil para almacenar y procesar fechas.
Por lo mismo no es adecuado para fechas anteriores. Por ejemplo para fechas de nacimiento.
Suponemos fechas con formato:
mes-dia-año hora:minutos
Pero puede ser cualquier otro. Sólo modifica donde sea necesario: en el primer argumento de date().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <?php function makeUnixtime($date, $sep = ' ') { # retornamos siempre un entero if ( ! $date) return 0; $date = explode($sep, $date); # a veces hay fechas del tipo: Hoy 12:50 if ($date[0] == 'Hoy') # en tal caso determinamos m-d-y sin la hora $date[0] = date("m-d-y", time()); else if ($date[0] == 'Ayer') # lo mismo pero 12 horas antes $date[0] = date("m-d-y", time() - 3600 * 12); $date1 = explode('-', $date[0]); $date2 = explode(':', $date[1]); # ahora date1 es un array que contiene: mes, dia, año # ahora date2 es un array que contiene: hora, minutos # usamos mktime con: hora, minutos, 0segundos, mes, dia, año $date = mktime($date2[0], $date2[1], 0, $date1[0], $date1[1], $date1[2]); # retornamos siempre un entero return is_integer($date) ? $date : 0; } ?> |
Ejemplo de uso:
1 2 3 4 5 | <?php $unixtime = makeUnixtime('Ayer 03:55'); $unixtime = makeUnixtime('05-01-08 08:11'); $unixtime = makeUnixtime('12-18-08, 3:59', ', '); ?> |
Posts relacionados:
RSS feed para comentarios en este post
TrackBack URL



