Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Sinedra en 23 Febrero 2012, 17:10 pm



Título: Tiempo
Publicado por: Sinedra en 23 Febrero 2012, 17:10 pm
Hola a todos, quisiera hacer una pregunta sencilla, aquí voy

tengo un formulario en el cual obtengo una fecha de la forma "dd/mm/aa"
esa fecha la quiero almacenar en una tabla sql, digamos que es para el nacimiento de un usuario, para luego poder filtrar por edad y mostrar el contenido +18 o para todo publico o simplemente para felicitar a los usuarios de cumpleaños, bueno el problema surge en el momento que quiero hacer la consulta sql para poder segmentar segun la fecha, segun yo el trabajo es muy dificil de hacer si esta de la forma "dd/mm/aa" por lo tanto estaba pensando en guardarla como lo hace la funcion time() de php "Devuelve el momento actual medido como el número de segundos desde la Época Unix (1 de Enero de 1970 00:00:00 GMT)." fuente: http://www.php.net/manual/es/function.time.php (http://www.php.net/manual/es/function.time.php), así poder filtrar mas fácilmente solo usando un >= o <= a la fecha que quiero, mi problema radica principalmente en como convertir una fecha de la forma "dd/mm/aa" a una fecha estilo time(), trate de buscar pero no le doy con lo que quiero,
Si sabes de una forma mas eficiente o mas fácil de lo que propongo aquí por favor me podrías ayudar.

Bueno gracias por leer hasta aquí, espero su ayuda!


Título: Re: Tiempo
Publicado por: Sinedra en 23 Febrero 2012, 17:43 pm
No se molesten en contestar, he encontrado una solucion mas elegante para esto y mas optima, dejo la respuesta por si a alguien le sirve:

guarde la fecha en la forma AÑOMESDIA en la tabla sql y asi poder comparar las fechas muy facilmente, luego para mostrar se que los primeros 4 digitos son el año, los siguientes 2 el mes y los siguientes 2 el dia


Título: Re: Tiempo
Publicado por: Spider-Net en 23 Febrero 2012, 21:51 pm
No entiendo por qué tanto lío. En MySQL existe el tipo DATE y DATETIME, tampoco hace falta la función time, puedes guardar la fecha en formato aaaa-mm-dd con date, así: date("Y-m-d") y luego en PHP puedes comprobar si es mayor o menor que otra fecha usando la función strtotime(), un ejemplo:

Código
  1. $fecha_actual = strtotime(date("d-m-Y H:i:00",time()));
  2. $fecha_entrada = strtotime("19-11-2008 21:00:00");
  3.  
  4. if($fecha_actual > $fecha_entrada){
  5.        echo "La fecha entrada ya ha pasado";
  6. }else{
  7.        echo "Aun falta algun tiempo";
  8. }
  9.  
.

Si lo haces en MySQL es aún más sencillo, puedes comparar directamente dos fechas con los símbolos mayor que o menor que < >.