Foros del Web » Programando para Internet » PHP »

Calcular tiempo entre dos fechas

Estas en el tema de Calcular tiempo entre dos fechas en el foro de PHP en Foros del Web. Haber con: Código PHP: $sdate = date ( "d" ). "/" . date ( "m" ). "/" . date ( "Y" );  obtengo la fecha ...
  #1 (permalink)  
Antiguo 22/08/2005, 18:34
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 21 años, 5 meses
Puntos: 2
Calcular tiempo entre dos fechas

Haber con:

Código PHP:
$sdate=date("d")."/".date("m")."/".date("Y"); 
obtengo

la fecha de hoy (dd/mm/yyyy)

ahora bien, yo por ejemplo quiero saber los años, meses y dias que an pasado desde una fecha concreta, por ejemplo: 15/08/1720 hasta el dia de hoy.

como lo haria? restando?


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #2 (permalink)  
Antiguo 23/08/2005, 02:20
Avatar de MarioNunes  
Fecha de Ingreso: agosto-2005
Mensajes: 280
Antigüedad: 19 años, 3 meses
Puntos: 1
Buenas,

http://www.forosdelweb.com/850757-post.html

Un saludo.
__________________
www.pensandoenred.com
  #3 (permalink)  
Antiguo 23/08/2005, 04:52
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 21 años, 5 meses
Puntos: 2
Ya, pero yo no quiero acceder a ninguna base de datos para obtener la fecha

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #4 (permalink)  
Antiguo 23/08/2005, 05:05
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 19 años, 5 meses
Puntos: 10
Conforme lo haces tu creo q seria:

$diaActual = date("d");
$diaMio = "";

$mesActual = date("m");
$mesMio = "";

$anoActual = date("Y");
$anoMio = "";

if ($diaMio <= $diaActual) {
$dia = $diaActual - $diaMio;
}else{
$dia = $diaMio - $diaActual;
}

// Igual con los meses y los años.

Podria valer ????
  #5 (permalink)  
Antiguo 23/08/2005, 05:10
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 8 meses
Puntos: 17
Buenas

Código PHP:
<?
$day 
15;
$month 8;
$year 2002;

$opening mktime(000$month$day$year);
$now time();
$diff floor(($now $opening) / (24 60 60));

echo 
"Paso ".$diff." dia/s";
?>
Con 1720 tengo problemas por Windows, pero la dif de días lo calcula para fechas "recientes"
  #6 (permalink)  
Antiguo 23/08/2005, 05:33
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 21 años, 5 meses
Puntos: 2
Haber yo lo que quiero es que me diga, desde la fecha actual hasta por ejemplo 20/05/1805, me de:

200 años 3 meses y 2 dias

no que me cuente solo los dias

jorgivaz creo q estas en lo cierto


bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #7 (permalink)  
Antiguo 23/08/2005, 05:53
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 21 años, 5 meses
Puntos: 2
He echo algunas modificaciones:

Código PHP:
$diaActual date("d");
$diaMio "";

$mesActual date("m");
$mesMio "";

$anoActual date("Y");
$anoMio "";

if (
$diaMio <= $diaActual) {
$dia $diaActual $diaMio;
}else{
$dia $diaActual;
}

if (
$mesMio <= $mesActual) {
$mes $mesActual $mesMio;
}else{
$mes $mesActual;
}

if (
$anoMio <= $anoActual) {
$ano $anoActual $anoMio;
}else{
$ano $anoActual;
}

echo 
"Paso ".$ano." años ".$mes." meses y ".$dia." dias"

Ahora la idea es por ejemplo si la fecha que da es:

5 años 0 meses y 1 dia

lo ideal seria que mostrase:

5 años y 1 dia

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #8 (permalink)  
Antiguo 23/08/2005, 06:03
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 21 años, 5 meses
Puntos: 2
Ya tengo el codigo definitivo, muchas gracias a todos

Código PHP:
<?php 

$diaActual 
date("d");
$diaMio "";

$mesActual date("m");
$mesMio "";

$anoActual date("Y");
$anoMio "";

if (
$diaMio <= $diaActual) {
$dia $diaActual $diaMio;
}else{
$dia $diaActual;
}

if (
$mesMio <= $mesActual) {
$mes $mesActual $mesMio;
}else{
$mes $mesActual;
}

if (
$anoMio <= $anoActual) {
$ano $anoActual $anoMio;
}else{
$ano $anoActual;
}
if (
$ano == "0") {
echo 
"Paso ".$mes." meses y ".$dia." dias";
}else if(
$mes == "0"){
echo 
"Paso ".$ano." años  y ".$dia." dias";
}else if(
$dia == "0"){
echo 
"Paso ".$ano." años  y ".$mes." meses";
}else{
echo 
"Paso ".$ano." años ".$mes." meses y ".$dia." dias"
}

?>
adios

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #9 (permalink)  
Antiguo 23/08/2005, 07:09
 
Fecha de Ingreso: junio-2005
Mensajes: 343
Antigüedad: 19 años, 5 meses
Puntos: 10
He puesto el código en http://www.maniacosdigitales.labarana.com, para la demas gente que no entra en este foro pero que quizás pueda estar buscando algo semejante.
  #10 (permalink)  
Antiguo 23/08/2005, 07:22
Avatar de MarioNunes  
Fecha de Ingreso: agosto-2005
Mensajes: 280
Antigüedad: 19 años, 3 meses
Puntos: 1
Cita:
Iniciado por bichomen
Haber yo lo que quiero es que me diga, desde la fecha actual hasta por ejemplo 20/05/1805, me de:

200 años 3 meses y 2 dias

no que me cuente solo los dias

jorgivaz creo q estas en lo cierto


bichomen
Si sabes el número de días puedes calcular el resto :)

Un saludo.
__________________
www.pensandoenred.com
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




La zona horaria es GMT -6. Ahora son las 14:13.