07. september 2008 - 14:52
Der er
4 kommentarer og
1 løsning
Difference mellem 2 datoer (php)
Hejsa.
Jeg har $idag som er date("Y-m-d"); og $row['dato'] som er samme format.
Det jeg skal nu er at finde differencen mellem de 2 dage.
F.eks:
$idag = 2008-09-07
$row['dato'] = 2008-09-06
Der er så 1 dags difference.
Jeg forsøgte at gøre flg:
$days = $idag - $row['dato'];
Men får blot returneret et 0.
Nogle ideer?
Mange tak
08. september 2008 - 09:27
#3
Fandt en kode på nettet, og rettede lidt:
<?
/*
evt:
$explodedate = explore("-",$row[dato]");
$db_dag = $explodedate[2];
$db_maanede = $explodedate[1];
$db_aar = $explodedate[0];
Men ville være meget lettere, hvis det du gemte i databasen var time().
Hvis du plusser nogle dage til osv inden du gemmer det, kan du bruge:
strtotime("now +2 days"); f.eks.
Så kan du hente det til variabler vha.:
$db_dag = date("d",$row[dato]);
etc.
*/
$db_dag = 6;
$db_maanede = 9;
$db_aar = 2008;
$nu_dag = 7;
$nu_maanede = 9;
$nu_aar = 2008;
//Så kører koden selv.. Ret selv printet til det du vil have..
$db_maanede_max = date ("t",mktime (0,0,0,$db_maanede,$db_dag,$db_aar));
$db_dag_diff = $db_maanede_max - $db_dag;
$db_maanede_diff = 12 - $db_maanede - 1;
$start_day = 1;
$start_mon = 1;
$start_yr = $db_aar + 1;
$day_diff = ($nu_dag - $start_day) + 1;
$mon_diff = ($nu_maanede - $start_mon) + 1;
$yr_diff = ($nu_aar - $start_yr);
$day_diff = $day_diff + $db_dag_diff;
$mon_diff = $mon_diff + $db_maanede_diff;
if ($day_diff >= $db_maanede_max)
{
$day_diff = $day_diff - $db_maanede_max;
$mon_diff = $mon_diff + 1;
}
if ($mon_diff >= 12)
{
$mon_diff = $mon_diff - 12;
$yr_diff = $yr_diff + 1;
}
print "The difference between <b>".$db_aar."-".$db_maanede."-".$db_dag."</b> ";
print "and <b>".$nu_aar."-".$nu_maanede."-".$nu_dag."</b> is:";
print "<br><br>";
$years = "years";
$days = "days";
if ($yr_diff == "1") $years = "year";
if ($day_diff == "1") $days = "day";
print $yr_diff." ".$years.", ";
print $mon_diff." month and ";
print $day_diff." ".$days;
?>
Husk at datoerne skal være UDEN leading zero, f.eks. januar er IKKE 01, men 1. ellers virker systemet ikke.
08. september 2008 - 17:06
#4
coderdk, din første post var det jeg endte med at bruge.. Ved ikke om det er smart, men det virker som det skal :D
Så ligger du ikke et svar?
Ellers tak for svarene