Foros del Web » Programando para Internet » PHP »

Consulta PHP funcion date()

Estas en el tema de Consulta PHP funcion date() en el foro de PHP en Foros del Web. Hola, necesito hacer una función que consulte el día y hora actual, si esta es mayor a la variable $a sumar 6 horas a la ...
  #1 (permalink)  
Antiguo 20/07/2011, 22:42
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 1
Consulta PHP funcion date()

Hola, necesito hacer una función que consulte el día y hora actual, si esta es mayor a la variable $a sumar 6 horas a la variable $a, si luego de la suma sigue siendo mayor el día y hora actual sumo nuevamente 6 horas y así sucesivamente hasta que la variable $a sea mayor al día y hora actual.

Código PHP:
<?php

date_default_timezone_set
('America/Montevideo');

$fecha date("Y-m-d H:i:s");
echo 
$fecha "<br><br>";

$a date("Y-m-d H:i:s",strtotime("2011-07-20 12:00:00"));
$b date("Y-m-d H:i:s",strtotime("2011-07-20 12:00:00 + 6 hours"));
$c date("Y-m-d H:i:s",strtotime("2011-07-20 12:00:00 + 12 hours"));
$d date("Y-m-d H:i:s",strtotime("2011-07-20 12:00:00 + 18 hours"));
$e date("Y-m-d H:i:s",strtotime("2011-07-20 12:00:00 + 24 hours"));

if (
$fecha $a and $fecha $b){
    
    echo 
$a "<br>";
    echo 
$b "<br>";
    echo 
$c "<br>";
    
}elseif(
$fecha $b and $fecha $c){
    
    echo 
$b "<br>";
    echo 
$c "<br>";
    echo 
$d "<br>";

}elseif(
$fecha $c and $fecha $d){
    
    echo 
$c "<br>";
    echo 
$d "<br>";
    echo 
$e "<br>";

}else{
    
    echo 
"Error";
    
}

?>
Intente hacerlo con el bucle de While, pero no lo logre... no logro sumar las 6 horas con el bucle.
Gracias por lo que puedan aportar.
Saludos, Eguar.
  #2 (permalink)  
Antiguo 20/07/2011, 23:14
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Consulta PHP funcion date()

Y si tratas de hacerlo con mktime() ???

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 21/07/2011, 04:38
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Consulta PHP funcion date()

Cita:
Iniciado por Marvin Ver Mensaje
Y si tratas de hacerlo con mktime() ???

Suerte!
Gracias por responder amigo, estudiare esa funcion porque no la conozco.

Gracias nuevamente.
  #4 (permalink)  
Antiguo 21/07/2011, 10:14
Avatar de Physlet  
Fecha de Ingreso: octubre-2010
Ubicación: Panamá
Mensajes: 48
Antigüedad: 13 años, 5 meses
Puntos: 9
Respuesta: Consulta PHP funcion date()

La función time() te devuelve la fecha actual expresada en segundos desde el 1 de enero de 1970. ([URL="http://php.net/manual/en/function.time.php"]Clic para mayor información[/URL]).

Si lo que quieres es añadirle 6 horas a una variable, convierte esas 6 horas en segundos y súmalo a la variable. Algo como:

$fecha_actual = time();
$nueva_fecha = $fecha_actual + (6 * 3600);

Ahora $nueva_fecha tendrá la fecha actual aumentada 6 horas y en segundos. Y si le quieres dar formato puedes usar la función date(), donde su segundo parámetro es el time().

Algo como:
echo date('Y-m-d h:i', $nueva_fecha);

--

Espero te sirva
  #5 (permalink)  
Antiguo 21/07/2011, 11:13
Avatar de DinamiteDog  
Fecha de Ingreso: febrero-2005
Ubicación: Rosario, Argentina
Mensajes: 77
Antigüedad: 19 años, 2 meses
Puntos: 4
Respuesta: Consulta PHP funcion date()

Aquí tienes una clase que funciona de maravillas para operaciones con fechas:

Código PHP:
Ver original
  1. <?
  2. /*********************************************************************************
  3. - Date operations by André Cupini
  4. - Sum or subtract day, months or years from any date
  5. - Ex:
  6. require_once("class_dt.php");
  7. $dt = new DT;
  8. $date = $dt->operations("06/01/2003", "sum", "day", "4")   // Return 10/01/2003
  9. $date = $dt->operations("06/01/2003", "sub", "day", "4")   // Return 02/01/2003
  10. $date = $dt->operations("06/01/2003", "sum", "month", "4") // Return 10/05/2003
  11. *********************************************************************************/
  12. class DT
  13. {
  14.     // Função que soma ou subtrai, dias, meses ou anos de uma data qualquer
  15.     function operations($date, $operation, $where = FALSE, $quant, $return_format = FALSE)
  16.     {
  17.         // Verifica erros
  18.         $warning = "<br>Warning! Date Operations Fail... ";
  19.         if(!$date || !$operation) {
  20.             return "$warning invalid or inexistent arguments<br>";
  21.         }else{
  22.             if(!($operation == "sub" || $operation == "-" || $operation == "sum" || $operation == "+")) return "<br>$warning Invalid Operation...<br>";
  23.             else {
  24.                 // Separa dia, mês e ano
  25.                 list($day, $month, $year) = split("/", $date);
  26.  
  27.                 // Determina a operação (Soma ou Subtração)
  28.                 ($operation == "sub" || $operation == "-") ? $op = "-" : $op = '';
  29.  
  30.                 // Determina aonde será efetuada a operação (dia, mês, ano)
  31.                 if($where == "day")   $sum_day     = $op."$quant";
  32.                 if($where == "month") $sum_month = $op."$quant";
  33.                 if($where == "year")  $sum_year     = $op."$quant";
  34.                  
  35.                 // Gera o timestamp
  36.                 $date = mktime(0, 0, 0, $month + $sum_month, $day + $sum_day, $year + $sum_year);
  37.                  
  38.                 // Retorna o timestamp ou extended
  39.                 ($return_format == "timestamp" || $return_format == "ts") ? $date = $date : $date = date("d/m/Y", "$date");
  40.  
  41.                 // Retorna a data
  42.                 return $date;
  43.             }
  44.         }
  45.     }
  46. }
  47. ?>
http://www.phpclasses.org/browse/file/3126.html

Saludos!
__________________
All generalizations are false, including this one ~ Mark Twain
  #6 (permalink)  
Antiguo 21/07/2011, 19:44
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Consulta PHP funcion date()

Muchas gracias a todos.

Solucione de esta forma:

Código PHP:
<?php

$fecha 
date("Y-m-d H:i:s");
$suma 6;
$fechaFija date("Y-m-d H:i:s",strtotime("2011-07-20 12:00:00"));

while(
$fecha $fechaFija){
$fechaFija date("Y-m-d H:i:s",strtotime("2011-07-20 12:00:00 + ".$suma." hours"));
$suma += 6;
}

echo 
$fechaFija;

?>
Saludos, Eguar.
  #7 (permalink)  
Antiguo 21/07/2011, 20:10
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Consulta PHP funcion date()

Tu script tiene problema con la hora, creo que me falta algo, pero puedes tomar cosas para mejorar el tuyo.

Código PHP:
Ver original
  1. <?php
  2.  
  3. $fecha = date("2011-07-20");
  4.  
  5. $fechaFija = strtotime(time());
  6.  
  7. while($fecha > $fechaFija){
  8. $fechaFija = strtotime("+6 hours");
  9. }
  10.  
  11. echo date("Y-m-d H:i:s", $fechaFija);

Última edición por andresdzphp; 21/07/2011 a las 20:52 Razón: aclaración
  #8 (permalink)  
Antiguo 22/07/2011, 01:56
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Consulta PHP funcion date()

Si pruebas tu script con varias fechas te darás cuenta que falla. Esta fue la solución correcta que pude hacer. Me funciona perfectamente.

PD: el post anterior fue una prueba ;)

Código PHP:
Ver original
  1. $fechaFija = strtotime('2011-07-21 00:00:00');
  2. $fecha = time();
  3. $suma = 6;
  4.  
  5. while ($fecha > $fechaFija) {
  6.     $fechaFija += ($suma * 60 * 60);
  7.     $suma += 6;
  8. }
  9.  
  10. echo date('Y-m-d H:i:s', $fechaFija);

Última edición por andresdzphp; 22/07/2011 a las 02:03
  #9 (permalink)  
Antiguo 22/07/2011, 20:33
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Consulta PHP funcion date()

Cita:
Iniciado por andresdzphp Ver Mensaje
Si pruebas tu script con varias fechas te darás cuenta que falla. Esta fue la solución correcta que pude hacer. Me funciona perfectamente.

PD: el post anterior fue una prueba ;)

Código PHP:
Ver original
  1. $fechaFija = strtotime('2011-07-21 00:00:00');
  2. $fecha = time();
  3. $suma = 6;
  4.  
  5. while ($fecha > $fechaFija) {
  6.     $fechaFija += ($suma * 60 * 60);
  7.     $suma += 6;
  8. }
  9.  
  10. echo date('Y-m-d H:i:s', $fechaFija);
Muchísimas gracias.
Me vino de maravilla :)

Si no es molestia, tengo una nueva consulta, lo que intento hacer ahora es lo siguiente, quiero que me de el tiempo que resta en llegar a $fechaFija.

Yo tengo algo así pero no funciono 

Código PHP:
<?php

$fechaFija 
strtotime('2011-07-21 00:00:00');
$fecha time();
$suma 6;

while (
$fecha $fechaFija) {
    
$fechaFija += ($suma 60 60);
    
$suma += 6;


echo 
date('Y-m-d H:i:s'$fechaFija);

$date date('Y-m-d H:i:s');
$prueba date('Y-m-d H:i:s'$fechaFija);

$propo $prueba $date;

echo 
date('H:i:s'$propo);

?>
Gracias nuevamente.
  #10 (permalink)  
Antiguo 22/07/2011, 20:53
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Consulta PHP funcion date()

Creó que esto es lo que necesitas, sino avisame que yo te sigo ayudando. Me interesa mucho el tema.


Código PHP:
Ver original
  1. <?php
  2.  
  3. $fechaFija = strtotime('2011-07-21 00:00:00');
  4. $fecha = time();
  5. $suma = 6;
  6.  
  7. while ($fecha > $fechaFija) {
  8.     $fechaFija += ($suma * 60 * 60);
  9.     $suma += 6;
  10. }  
  11.  
  12. echo date('Y-m-d H:i:s', $fechaFija);
  13.  
  14. $propo = $fechaFija - $fecha;
  15.  
  16. echo '<br /><br />' . date('H:i:s', $propo);
  17.  
  18. ?>
  #11 (permalink)  
Antiguo 22/07/2011, 21:37
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Consulta PHP funcion date()

Cita:
Iniciado por andresdzphp Ver Mensaje
Creó que esto es lo que necesitas, sino avisame que yo te sigo ayudando. Me interesa mucho el tema.


Código PHP:
Ver original
  1. <?php
  2.  
  3. $fechaFija = strtotime('2011-07-21 00:00:00');
  4. $fecha = time();
  5. $suma = 6;
  6.  
  7. while ($fecha > $fechaFija) {
  8.     $fechaFija += ($suma * 60 * 60);
  9.     $suma += 6;
  10. }  
  11.  
  12. echo date('Y-m-d H:i:s', $fechaFija);
  13.  
  14. $propo = $fechaFija - $fecha;
  15.  
  16. echo '<br /><br />' . date('H:i:s', $propo);
  17.  
  18. ?>
WOW que facil la haces amigo, la verdad te quedo genial y entendistes correctamente lo que yo queria.

Tambien me di cuenta del error que cometi, que sencillo lo hacen los que saben, algun dia podre hacerlo igual ;)

Muchas gracias nuevamente.

Quizas realice alguna otra consulta ya que estoy "haciendo" una prueba...

Las "" porque en realidad estamos haciendo ya que ustedes me estan ayudando muchisimo.

Saludos, Eguar.
  #12 (permalink)  
Antiguo 22/07/2011, 22:39
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Consulta PHP funcion date()

De nada amigo, no soy experto pero en todo lo que pueda ayudar con mucho gusto.

Damos el tema por solucionado
  #13 (permalink)  
Antiguo 22/07/2011, 22:41
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Consulta PHP funcion date()

Hola,

¿Y porque razón pones a hacer un cálculo con ciclos a una calculadora? Algunas veces se nos olvida que todos los cálculos se pueden realizar matemáticamente, si conocemos bien las matemáticas.

Por ejemplo:
Código PHP:
function diferencia_periodo($a$z) {
  if (
$a $z) return $z;
  return (
ceil((($z $a) / 60 60) / 6) * 60 60) + $a;

No necesitas hacer un ciclo que se repita para saber cual es la diferencia de periodos de 6 horas entre dos números que denotan un instante en el tiempo (el timestamp o tiempo serial de Unix).

Aunque posiblemente así está mas claro:
Código PHP:
define("MINUTOS_POR_HORA"60);
define("SEGUNDO_POR_HORA"60);
define("PERIODO_HORAS",     6);

function 
diferencia_periodo_detalle($a$z) {
  if (
$a $z) return $z;
  
$r $z $a// LA DIFERENCIA EN SEGUNDOS ENTRE LAS DOS FECHAS
  
$r $r SEGUNDO_POR_HORA MINUTOS_POR_HORA// LA DIFERENCIA EN HORAS
  
$r $r PERIODO_HORAS// LA DIFERENCIA EN PERIODOS DE 6 HORAS
  
$r ceil($r); // LA DIFRENCIA REDONDEADA AL ENTERO MAS ALTO
  
$r $r PERIODO_HORAS SEGUNDO_POR_HORA MINUTOS_POR_HORA// MULTIPLICA LA DIFERENCIA POR EL PERIODO EN SEGUNDOS
  
return $r $a// SE LE AGREGA EL PERIODO INICIAL

Ahora podemos realizar algunas pruebas:
Código PHP:
echo date("Y-m-d H:i:s"diferencia_periodo(strtotime("2011-07-22 22:15:00"), strtotime("2011-07-22 22:20:00"))) . "\n"// DIFERENCIA DE  5 MINUTOS
echo date("Y-m-d H:i:s"diferencia_periodo(strtotime("2011-07-22 22:15:00"), strtotime("2011-07-23 04:15:00"))) . "\n"// DIFERENCIA DE  6 HORAS
echo date("Y-m-d H:i:s"diferencia_periodo(strtotime("2011-07-22 22:15:00"), strtotime("2011-07-23 04:16:00"))) . "\n"// DIFERENCIA DE  6 HORAS 1 MINUTO
echo date("Y-m-d H:i:s"diferencia_periodo(strtotime("2011-07-22 22:15:00"), strtotime("2011-07-23 10:15:00"))) . "\n"// DIFERENCIA DE 12 HORAS
echo date("Y-m-d H:i:s"diferencia_periodo(strtotime("2011-07-22 22:15:00"), strtotime("2011-07-23 10:15:01"))) . "\n"// DIFERENCIA DE 12 HORAS 1 SEGUNDO 
Saludos,
  #14 (permalink)  
Antiguo 22/07/2011, 22:47
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Consulta PHP funcion date()

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,

¿Y porque razón pones a hacer un cálculo con ciclos a una calculadora? Algunas veces se nos olvida que todos los cálculos se pueden realizar matemáticamente, si conocemos bien las matemáticas.

Por ejemplo:
Código PHP:
function diferencia_periodo($a$z) {
  if (
$a $z) return $z;
  return (
ceil((($z $a) / 60 60) / 6) * 60 60) + $a;

No necesitas hacer un ciclo que se repita para saber cual es la diferencia de periodos de 6 horas entre dos números que denotan un instante en el tiempo (el timestamp o tiempo serial de Unix).

Aunque posiblemente así está mas claro:
Código PHP:
define("MINUTOS_POR_HORA"60);
define("SEGUNDO_POR_HORA"60);
define("PERIODO_HORAS",     6);

function 
diferencia_periodo_detalle($a$z) {
  if (
$a $z) return $z;
  
$r $z $a// LA DIFERENCIA EN SEGUNDOS ENTRE LAS DOS FECHAS
  
$r $r SEGUNDO_POR_HORA MINUTOS_POR_HORA// LA DIFERENCIA EN HORAS
  
$r $r PERIODO_HORAS// LA DIFERENCIA EN PERIODOS DE 6 HORAS
  
$r ceil($r); // LA DIFRENCIA REDONDEADA AL ENTERO MAS ALTO
  
$r $r PERIODO_HORAS SEGUNDO_POR_HORA MINUTOS_POR_HORA// MULTIPLICA LA DIFERENCIA POR EL PERIODO EN SEGUNDOS
  
return $r $a// SE LE AGREGA EL PERIODO INICIAL

Ahora podemos realizar algunas pruebas:
Código PHP:
echo date("Y-m-d H:i:s"diferencia_periodo(strtotime("2011-07-22 22:15:00"), strtotime("2011-07-22 22:20:00"))) . "\n"// DIFERENCIA DE  5 MINUTOS
echo date("Y-m-d H:i:s"diferencia_periodo(strtotime("2011-07-22 22:15:00"), strtotime("2011-07-23 04:15:00"))) . "\n"// DIFERENCIA DE  6 HORAS
echo date("Y-m-d H:i:s"diferencia_periodo(strtotime("2011-07-22 22:15:00"), strtotime("2011-07-23 04:16:00"))) . "\n"// DIFERENCIA DE  6 HORAS 1 MINUTO
echo date("Y-m-d H:i:s"diferencia_periodo(strtotime("2011-07-22 22:15:00"), strtotime("2011-07-23 10:15:00"))) . "\n"// DIFERENCIA DE 12 HORAS
echo date("Y-m-d H:i:s"diferencia_periodo(strtotime("2011-07-22 22:15:00"), strtotime("2011-07-23 10:15:01"))) . "\n"// DIFERENCIA DE 12 HORAS 1 SEGUNDO 
Saludos,
Según el que hizo el post necesita sumar 6 horas a la fecha, si sigue siendo menor necesita sumarle 12 y asi sucesivamente. Muy interesante lo que propones.
  #15 (permalink)  
Antiguo 22/07/2011, 22:56
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Consulta PHP funcion date()

Hola,

Cita:
Iniciado por andresdzphp Ver Mensaje
Según el que hizo el post necesita sumar 6 horas a la fecha, si sigue siendo menor necesita sumarle 12 y asi sucesivamente. Muy interesante lo que propones.
Eso es exactamente lo que hace la función. Léela detenidamente de nuevo y haz algunas pruebas para comprobarlo.

Saludos,
  #16 (permalink)  
Antiguo 22/07/2011, 22:59
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Consulta PHP funcion date()

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,



Eso es exactamente lo que hace la función. Léela detenidamente de nuevo y haz algunas pruebas para comprobarlo.

Saludos,
Si lo primero que hice fue probar el código y está perfecto. da exactamente el mismo resultado con el que yo intente hacer.
  #17 (permalink)  
Antiguo 22/07/2011, 23:06
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Consulta PHP funcion date()

Hola,

Cita:
Iniciado por andresdzphp Ver Mensaje
Si lo primero que hice fue probar el código y está perfecto. da exactamente el mismo resultado con el que yo intente hacer.
La única diferencia es que calcula el total en función de la diferencia máxima en periodos de seis horas entre la fecha inicial y la fecha final. Si fuera necesario hacer un proceso intermedio entre cada intervalo, entonces si sería necesario el ciclo, de otra forma se puede calcular matemáticamente. Aunque en ningún momento se escribió sobre realizar un proceso intermedio, depende de eguar utilizar el que mejor se ajuste a lo que necesita.

Saludos,
  #18 (permalink)  
Antiguo 22/07/2011, 23:10
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Consulta PHP funcion date()

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,



La única diferencia es que calcula el total en función de la diferencia máxima en periodos de seis horas entre la fecha inicial y la fecha final. Si fuera necesario hacer un proceso intermedio entre cada intervalo, entonces si sería necesario el ciclo, de otra forma se puede calcular matemáticamente. Aunque en ningún momento se escribió sobre realizar un proceso intermedio, depende de eguar utilizar el que mejor se ajuste a lo que necesita.

Saludos,
Excelente @HackmanC, muchas gracias por aportar al tema, y tienes razón aveces nos olvidamos de las matemáticas. Saludos
  #19 (permalink)  
Antiguo 26/07/2011, 11:23
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Consulta PHP funcion date()

Hola, buenas tardes.

Sigo con dudillas :(

Estoy realizando el script y me encuentro con que no me calcula correctamente el tiempo que resta en llegar a cumplirse las 37 horas.

Código PHP:
<?php
date_default_timezone_set
("Europe/Madrid");
echo 
"Hora actual España " date('Y-m-d H:i:s') . "<br>";
date_default_timezone_set("America/Montevideo");
echo 
"Hora actual Uruguay " date('Y-m-d H:i:s') . "<br><br>";

$fechaFija1 strtotime('2011-07-25 20:03:00');

$fecha time();
$suma 133200;
$sumaesp 18000;

while (
$fecha $fechaFija1) {
    
$fechaFija1 += ($suma);
    
$suma += 133200;
}  

$espana $fechaFija1 $sumaesp;

echo 
"En españa, a las " date('Y-m-d H:i:s'$espana) . '<br>';
echo 
"En Uruguay, a las " date('Y-m-d H:i:s'$fechaFija1) . '<br>';

$propo $fechaFija1 $fecha;

echo 
'<br>' date("H:i:s"$propo) . '<br>';
?>
Gracias por lo que puedan aportar y disculpen tantas consultas, antes de consultar me tome el tiempo de analizar donde esta el error y por lo que veo el error esta en la variable $propo, si a la misma la largo con
Código PHP:
echo date("Y-m-d H:i:s"$propo
me imprime algo similar a esto 1970-01-01 xx:xx:xx, pero no supe como solucionarlo :(

Saludos, eguar.
  #20 (permalink)  
Antiguo 26/07/2011, 11:27
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Consulta PHP funcion date()

colocale el strtotime para poder restarlo:

Código PHP:
Ver original
  1. $propo = $fechaFija1 - strtotime($fecha);
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #21 (permalink)  
Antiguo 26/07/2011, 11:36
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Consulta PHP funcion date()

Cita:
Iniciado por andresdzphp Ver Mensaje
colocale el strtotime para poder restarlo:

Código PHP:
Ver original
  1. $propo = $fechaFija1 - strtotime($fecha);
Amigo, me imprime esto y actualizo y sigue imprimiendo lo mismo.

Restan 09:03:00 para que se cumplan las 37 horas

Saludos, eguar.
  #22 (permalink)  
Antiguo 26/07/2011, 20:45
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Consulta PHP funcion date()

Hola,

El problema es que estas restando una fecha de otra y por consiguiente te da la diferencia, por ejemplo, si a las 10 de la mañana le quitas las 8 de la mañana te devuelve 2 horas, y por lógica no son las 2 de la mañana.

$propo = 27 de Julio menos 26 de Julio;

En $propo tienes 1 día, como la función date() te convierte un valor numérico en función del tiempo serial POSIX timestamp que inicia en algún momento de 1970 o algo así, entonces te dice que será el siguiente día de 1970.

Para corregirlo tendrías que sumarle el valor inicial donde comenzaste a contar. Ya tienes la idea de lo que tienes que hacer.

Saludos,
  #23 (permalink)  
Antiguo 26/07/2011, 21:34
 
Fecha de Ingreso: octubre-2006
Mensajes: 16
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Consulta PHP funcion date()

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,

El problema es que estas restando una fecha de otra y por consiguiente te da la diferencia, por ejemplo, si a las 10 de la mañana le quitas las 8 de la mañana te devuelve 2 horas, y por lógica no son las 2 de la mañana.

$propo = 27 de Julio menos 26 de Julio;

En $propo tienes 1 día, como la función date() te convierte un valor numérico en función del tiempo serial POSIX timestamp que inicia en algún momento de 1970 o algo así, entonces te dice que será el siguiente día de 1970.

Para corregirlo tendrías que sumarle el valor inicial donde comenzaste a contar. Ya tienes la idea de lo que tienes que hacer.

Saludos,
Gracias amigo.

Mira, con una ayudita de andresdzphp logre hacer lo siguiente y por ahora marcha todo muy bien.

Código PHP:
<?php

date_default_timezone_set
("America/Montevideo");
//echo date('Y-m-d H:i:s') . '<br />';

$fechaFija1 strtotime('2011-07-26 12:51:00');
$fecha time();
$suma 133200;
$sumaesp 18000;

while (
$fecha $fechaFija1) {
    
$fechaFija1 += ($suma);
    
$suma += 133200;
}  

$espana $fechaFija1 $sumaesp;

echo 
"En España, a las " date('Y-m-d H:i:s'$espana) . '<br>';
echo 
"En Uruguay, a las " date('Y-m-d H:i:s'$fechaFija1) . '<br>';

$propo $fechaFija1 $fecha;

$xsegundos $fechaFija1 $fecha;
$xminutos floor($xsegundos/60);
$xhoras floor($xminutos/60);
$xdias floor($xhoras/24);

$dias $xdias;
$horas $xhoras - ($dias 24);
$minutos $xminutos - ($xhoras 60);
$segundos $xsegundos - ($xminutos 60);

echo 
"<br>Respawn en: " $dias " dias - " $horas "h " $minutos "m " $segundos " s<br><br>"

?>
Muchas gracias por todo.

Etiquetas: funcion, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:26.