09. marts 2005 - 20:13
Der er
23 kommentarer og 1 løsning
Foreskellen mellem to datoer i dage!
Hej eksperter, Jeg er forholdsvis ny til php, og søger lidt hjælp til en funktion, som skal regne forskellen ud mellem to datoer i dage. Jeg vil åbne siden i et iframe, som har værdierne i sit link. Mit problem er at jeg ikke ved hvordan jeg skal kode funktionen, der udregner foreskellem mellem dagen i dag, omg datoen parret begyndte at komme sammen. Iframe kode: <iframe name="HovedFrame" src="side.php?navnl=Palle&navn2=Kirsten&dato=22-10-04" align="center" name="HovedFrame" scrolling=="no" style="width:100%; height:50px;" frameborder="0"></iframe> Side Koden: <!doctype html public "-//W3C//DTD HTML 4.0 //EN"> <html> <head> <title>Kæreste dage</title> </head> <body> <?php $navn1 = $_GET['navn1']; $navn2 = $_GET['navn2']; $dato = $_GET['dato']; $dage = $dato - date() echo "$navn1 og $navn2 har været kærster i $dage dage" ?> </body> </html>
Annonceindlæg fra Salesforce
Slettet bruger
09. marts 2005 - 20:19
#1
I en kommentar i PHP dokumentationen til funktionen checkdate() skriver moon at justmoon dot de: A method to calculate the days between two dates: <?php function diff_days($start_date, $end_date { return floor(abs(strtotime($start_date) - strtotime($end_date))/86400); } // You can use whatever days you want echo diff_days("20031013", "20040105"); // result: 84 // You can use every format strtotime supports echo diff_days("now", "-1 year"); // You can mix start and end echo diff_days("20031203", "20031201"); // result: 2 ?> -- pacroon
Slettet bruger
09. marts 2005 - 20:20
#2
Der mangler så lige en slutparentes efter $end_date :)
09. marts 2005 - 20:28
#3
Kan du ikke lige smide slutparentesen ind, kan ikke se hvor den mangler..
09. marts 2005 - 20:32
#4
Og forresten, kan jeg så ikke bruge denne formatering af datoen: 02-02-2004
09. marts 2005 - 20:49
#5
Her er en anden, som bruger time() <?php function days($var) { $d_sec = (time()-$var); $dage = floor($d_sec/86400); return $dage; } echo time() ."<p>"; echo days(1110307472); ?> Men er din dato gemt som f.eks. 02-02-2004 ???
09. marts 2005 - 21:21
#7
du kan da sagtens sende 02022002, 02-02-2004, 02 02 2004 eller whatever med GET !?
Slettet bruger
09. marts 2005 - 21:27
#8
Ja, jeg forstår heller ikke helt...
09. marts 2005 - 21:30
#10
Men hoved sagen er at scrptet kommer til at virke, datoen skal bare være angivet med tal, og så skal jeg kunne se ud fra linket, hvilken dato de blev kærester..
09. marts 2005 - 21:36
#12
Hvis du har din $dato som 02-02-2004 <?php function days($var) { $tid = explode("-", $var); $d_sec = (time()-mktime(0,0,0,trim($tid[1]),trim($tid[0]),trim($tid[2]))); $dage = floor($d_sec/86400); return $dage; } echo days("02-02-2004"); ?>
09. marts 2005 - 21:51
#13
Okay, men så skal den exploded dato over i forskels funktionen.. ikk'? <?php function days($var) { $d_sec = (time()-$var); $dage = floor($d_sec/86400); return $dage; } echo time() ."<p>"; echo days(1110307472); ?>
10. marts 2005 - 09:47
#14
Øhm.. Hvordan kommer hele koden så til at se ud? Med explode og foreskels funktion..
10. marts 2005 - 10:01
#15
Hvordan er din dato gemt?
10. marts 2005 - 10:02
#16
altså hvilket format? 02-02-2004 2004-02-02 time() ??????????????
10. marts 2005 - 11:06
#17
02-02-2004 Datoen er ikke gemt nogle steder, det er derfor det skal variere ud fra hvilken værdi ?dato har i linket..
10. marts 2005 - 11:17
#18
? det forstår jeg ikke lige? Hvordan kan du så lave et link? Anyway, dette <?php function days($var) { $tid = explode("-", $var); $d_sec = (time()-mktime(0,0,0,trim($tid[1]),trim($tid[0]),trim($tid[2]))); $dage = floor($d_sec/86400); return $dage; } echo days("02-02-2004"); ?> viser jo antal dage mellem nu og 02-02-2004 Du bruger en $_GET til at sætte dato? echo days($_GET["dato"]); Evt. bør der nok tjekkes på om dato er gyldig, og explode giver tre m.m.
10. marts 2005 - 11:55
#19
Jeg åbner jo siden med et link, som indsætter dato, og de to navne: <iframe name="HovedFrame" src="side.php?navnl=Palle&navn2=Kirsten&dato=22-10-04" align="center" name="HovedFrame" scrolling=="no" style="width:100%; height:50px;" frameborder="0"></iframe>
10. marts 2005 - 12:03
#20
Rettelse: <iframe name="HovedFrame" src="side.php?navn1=Palle&navn2=Kirsten&dato=22-10-04" align="center" name="HovedFrame" scrolling=="no" style="width:100%; height:50px;" frameborder="0"></iframe>
14. marts 2005 - 16:28
#21
Det virker : ) Men jev ville gerne hvis jeg kunne skrive en echo lige ud. Hvad er fejlen i denne linie?: echo "$navn1 og $navn2 har været kærester i days($_GET['dato']) dage"; Ville være yderst taknemmelig, hvis jeg kunne få en funktion, som retunere en fejl, når ?dato er lig med et negativt tal..
14. marts 2005 - 17:03
#22
Løste det lige selv^ Men kunne godt tænke mig at få scriptet til at tælle ned til f.eks. min fødselsdag, som fungere på samme måde som overstående.. <?php function days($var) { $tid = explode("-", $var); $d_sec = (time()-mktime(0,0,0,trim($tid[1]),trim($tid[0]),trim($tid[2]))); $dage = floor($d_sec/86400); return $dage; } $dage = days($_GET['dato']); $dato = $_GET['dato']; echo "Der er $dage tim min fødselsdag d. $dato! "; ?>
Vi tilbyder markedets bedste kurser inden for webudvikling