Ayuda Comparado Fecha y Hora

  • Autor Autor Yuads
  • Fecha de inicio Fecha de inicio
Y

Yuads

Anunciante
Hola, estoy intentado hacer un if en la cual haga lo siguiente.

Si la fecha/hora actual es igual o mayor a la Fecha/Hora Vencimiento, mostraria un mensaje: "Ya Puedes Descargar la APP", Pero si la Fecha/Hora Vencimiento es Mayor a la Fecha/Hora Actual, Mostraria: "Todavia No Puedes Descargar".


yo intente asi y no me funciono

PHP:
$fecha_ahora = date('Y-m-d H:i:s');
$fecha_vencimiento = '2017-03-29 3:17:00'; //Aca iria mi variable para mostrar la fecha/hora guardada en la base de datos.


if($fecha_ahora >= $fecha_vencimiento) {
          // Cuando la fecha/hora Actual no es igual o mayor a la fecha/hora de vencimiento
    	echo "Todavia No Puedes Descargar";
    }else{
         // cuando la fecha/hora actual es igual o mayor a la fecha/hora de vencimiento.
    	echo "Ya Puedes Descargar";
   }

Tambien como hago para que a esta actualizacion de fecha se le sume + 2 horas?

PHP:
$mysqli->query("UPDATE usuarios SET fecha = '{$date->format('Y-m-d H:i:s')}' WHERE id = $usuario->id");

Por Favor necesito ayuda con eso 🙁 :ambivalence:
 
Última edición:
Buenas,

Creo que con esto te servirá, ya lo he testado:

PHP:
//Importante simpre que trabajamos con fechas establecer el timezone para evitar problemas
date_default_timezone_set('Europe/Madrid');

$fecha_ahora = strtotime(date('Y-m-d H:i:s'));
$fecha_vencimiento = strtotime('2017-03-29 3:17:00'); 

if ($fecha_ahora >= $fecha_vencimiento)
echo "Todavia No Puedes Descargar";
else
echo "Ya Puedes Descargar";

Sobre la segunda cuestión , quieres que al realizar la actualización se le sume 2horas al momento actual ?

Si es sobre el momento actual:

PHP:
$mysqli->query("UPDATE usuarios SET fecha = DATE_ADD(now(), INTERVAL 2 HOUR) WHERE id = $usuario->id");

si es sobre la fecha guardada en fecha:

PHP:
$mysqli->query("UPDATE usuarios SET fecha = DATE_ADD(fecha, INTERVAL 2 HOUR) WHERE id = $usuario->id");

Esto ultimo no lo he comprobado, pero debería funcionar, sino a partir de ahí lo sacas seguro, lo importante es usar DATE_ADD y INTERVAL


Saludos
 
Última edición:
[MENTION=14521]ricky19[/MENTION] muchas gracias por tu respuesa.

acabo de probar asi

PHP:
<?php
//Importante simpre que trabajamos con fechas establecer el timezone para evitar problemas
date_default_timezone_set('Europe/Madrid');

$fecha_ahora = strtotime(date('Y-m-d H:i:s'));
$fecha_vencimiento = strtotime('2017-03-29 21:22:11'); 

if ($fecha_ahora >= $fecha_vencimiento)
echo "Todavia No Puedes Descargar";
else
echo "Ya Puedes Descargar";  
?>

Poniendo la fecha de vencimiento mas alta que la hora actual, y sale> Ya Puedes Descarga, en la cual tendria que salir: Todavia No Puedes Descargar.
Porque? porque la hora actual no a pasado al fecha de vencimiento :s , no se si sea por mi hosting o algo x..x

- - - Actualizado - - -
[MENTION=14521]ricky19[/MENTION] muchas gracias.

Listo cambie >= a <= y ahora si la fecha/hora actual es igual a la fecha de vencimiento o mas alta, sale: ya Puedes descargar, y si la fecha/hora actual es menos que la fecha de vencimiento sale: todavia no puedes descargar.
 
Entendí mal la declaración, bueno la tenias al revés tu, jejej.

Seria simplemente al revés :

PHP:
<?

//Importante simpre que trabajamos con fechas establecer el timezone para evitar problemas
date_default_timezone_set('Europe/Madrid');

$fecha_ahora = strtotime(date('Y-m-d H:i:s'));
$fecha_vencimiento = strtotime('2017-03-30 3:17:00');


if ($fecha_ahora <= $fecha_vencimiento)
echo "Todavia No Puedes Descargar";
else
echo "Ya Puedes Descargar";


?>

Yo lo he probado en mi servidor, y si pongo la fecha de vencimiento mas alta sale:Todavia No Puedes Descargar. Si lo quieres al revés es simplemente cambiar el comparador.


Saludos
 
[MENTION=14521]ricky19[/MENTION] acabo de probar y la fecha se actualizo a 2017-03-29 17:33:01 y son la 2017-03-29 21:34:00

no se porque se actualizo la fecha asi 🙁 , la fecha la tenia en 0000-00-00 00:00:00

- - - Actualizado - - -
[MENTION=14521]ricky19[/MENTION] listo bro ya lo acabo de arreglar :welcoming: , el unico problema que me queda es si la fecha esta guardada asi: 0000-00-00 00:00:00

se guarda mal la fecha actual y no se suma +2 horas.


o si la fecha es 2017-03-29 21:51:04 se actualiza a 2017-03-29 17:51:04 , no se porque, me puedes ayudar con eso? creo que este problema de actualizar la fecha a +2 hora soluccionaria tambien el de 0000-00-00 00:00:00 , ya que por lo visto se actualiza mal la fecha.
 
Última edición:
Muy raro ,yo creo que es la hora que esta dando tu servidor el problema.

Prueba haber de otra forma, jejej.


PHP:
<?
//Importante simpre que trabajamos con fechas establecer el timezone para evitar problemas
date_default_timezone_set('Europe/Madrid');
$fecha_ahora = new DateTime(date('Y-m-d H:i:s'));
$fecha_vencimiento =new DateTime('2017-03-30 3:17:00');


if ($fecha_ahora <= $fecha_vencimiento){
  echo "Todavia No Puedes Descargar";


}
else{
  echo "Ya Puedes Descargar";

}

echo "</br>Fecha Ahora  ". $fecha_ahora->format('Y-m-d H:i:s')."</br>Fecha Vencimiento  ". $fecha_vencimiento->format('Y-m-d H:i:s');


?>

Saludos
 

osea lo de Salir> todavia no puedes descargar si la hora actual no es mas alta que la fecha de vencimiento, funciona, el problema aca es actualizar la fecha que esta en al bd por la fecha/hora actual + 2 horas.

PHP:
$mysqli->query("UPDATE usuarios SET fecha = DATE_ADD(now(), INTERVAL 2 HOUR) WHERE id = $usuario->id");

lo raro es que siempre se actualiza a 2017-03-29 17:51:04 solamente se actualiza los minutos y segundos, y claro la hora siempre sale a 17.
 
No lo había leído, eso debería de funcionar, sino otra opción más fea es añadirlo por fuera:
No se si habrá que poner algunas comillas para añadir la variable, pero creo que no.
PHP:
$date2hour= date('Y-m-d H:i:s', strtotime('2 hour'));

$mysqli->query("UPDATE usuarios SET fecha = $date2hour WHERE id = $usuario->id");

Saludos
 

no hace nada ni se actualiza x...x :c

- - - Actualizado - - -
[MENTION=14521]ricky19[/MENTION]

PHP:
$date = new DateTime();
$mysqli->query("UPDATE usuarios SET fecha = '{$date->format('Y-m-d H:i:s')}' WHERE id = $usuario->id");

asi si me funciona para actualizar La Fecha/Hora a la actual, pero no sumar 2 horas :l

- - - Actualizado - - -

Listo ya lo soluccione solo lo puse asi

PHP:
    $date = new DateTime();
    $date->modify('+2 hour');

[MENTION=14521]ricky19[/MENTION] muchas gracias por ayudarme 😀