Re: [PHP-ES] Formatear fechas para guardar en base de datos
[email protected] (Rolan Benavent)
| Newsgroups | php.general.es |
|---|---|
| Message-ID | <[email protected]> |
AgustÃn MacÃas escribió:
> Hola,
> No tengo el nivel de muchos de los que hay por aquÃ, pero ando aprendiendo,
> y en este momento me he quedado bloqueado con una cosa que quizás sea
> básica, pero no soy capaz de encontrar la solución.
> Se trata de formatear una fecha que recibo de un formulario para guardarla
> en la base de datos como "*datetime*". Del formulario recibo el año, el
> mes, el dÃa y la hora. Y lo proceso de la siguiente manera:
>
> *$hora=$hora-1;*
> *$date="$annus-$mes-$dia-$hora";*
> *$tDate=strtotime($date);*
> *$dateparainsert=date("Y-m-d H",$tDate);*
>
> El problema que tengo, es que *primero*, no se si hay alguna forma más
> simple de hacerlo, y *segundo*, es que si no le resto "*1*" a "*$hora*", me
> guarda la fecha con una hora de más, pero al restarle "*1*", no consigo
> guardar fechas con la hora de media noche "00:00".
>
> Muchas gracias a todos, y espero me podáis orientar para encontrar la
> solución.
>
>
Hola AgustÃn,
viendo tu código, no entiendo muy bien por qué usas un "-" para separar
en $date la fecha de la hora, es decir, en vez de:
$date = "$annus-$mes-$dia-$hora";
por qué no pones:
$date = "$annus-$mes-$dia $hora";
De todos modos, ya que tienes separados todos los valores que componen
la fecha, en vez de la función strtotime(), yo usaria mktime():
// http://es2.php.net/manual/en/function.mktime.php
$date = mktime($hora, 0, 0, $mes, $dia, $annus);
Saludos,
Rolan Benavent.