14. december 2005 - 23:44
Der er
43 kommentarer og 1 løsning
Dato i tabel
Hej Eksperter...
Mit spørgsmål lyder således...
Jeg skal have lavet en tabel, hvor i første række skal den vise datoer. Men dog ikke så simpel, for hvis dagen idag er 01-01-2006 og det er en tirsdag. Skal den starte med "mandag" i samme uge, og stoppe ved "fredag"
Altså: man, tirs, ons, tors og fre. (lør og søn skal ikke vises...)
Spørg hvis tvivl...
Fra MySQL:
http://eksperten.dk/spm/671994
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
14. december 2005 - 23:53
#1
Ok. Lad os sige, at $row['dato'] indeholder datoen 04-01-2006 (en onsdag) if(date("N", $row['dato']) != 1) { $first_day = mktime(0, 0, 0, date("m", $row['dato']), (date("d", $row['dato'])-(date("N", $row['dato'])-1)), date("Y", $row['dato'])); } Og så en løkke med fra $first_day og 5 dage frem. Er det sådan du mener?
15. december 2005 - 00:22
#2
Det ser meget rigtigt ud, men virker ikke !
15. december 2005 - 00:22
#3
Skal der mere kode til ?
15. december 2005 - 00:24
#4
Ja, det skal der. Men ville gerne se om jeg var på sporet først. Hvordan ser formatet ud når du udhenter det. Mit bygger på, at du udhenter som et "unix_timestamp", ellers vil den ikke funke. Og så mangler der jo som jeg skrev løkken.
15. december 2005 - 00:32
#5
Jamen, ja du er på sporet.. Altså den finder "onsdag", og går tilbage til mandag, og 5 dage frem... Det er meget rigtigt...
15. december 2005 - 00:33
#6
Ok, så prøv følgende: $first_day = (date("d", $row['dato'])-(date("w", $row['dato'])-1)); for($i = $first_day; $i < $first_day+5; $i++) { echo date("d.m.Y", mktime(0, 0, 0, date("m", $row['dato']), $i, date("Y", $row['dato'])))."<br />"; } Og så igen er det vigtigt, at du har $row['dato'] som unix-timestamp.
15. december 2005 - 00:33
#7
Mit aller første forsøg dropper vi bare igen, det skal du ikke bruge. Opdagede at N kun blev tilføjet i 5.0, så bruger w i stedet.
15. december 2005 - 00:37
#8
Okay... Der skete noget... men ved ikke hvordan jeg skal gøre det der med unix-timestamp... ps. 29.12.1969 30.12.1969 31.12.1969 01.01.1970 02.01.1970 Dette er datoerne den kommer med... Hehe... det er mange år siden :D
15. december 2005 - 00:38
#9
Ja, det er netop fordi den får fejl, og derfor tager tilbage til 1.1.1970 (epoch). Men vis mig lige dit udtræk.
15. december 2005 - 00:39
#10
Mit udtræk.. Nu føler jeg mig dum... Hehe... Hvad mener du ?
15. december 2005 - 00:40
#11
Jeg mener der hvor du henter datoen ud fra databasen. Altså dit databaseudtræk :)
15. december 2005 - 00:42
#12
Henter ikke datoen fra en database, det skal funke således. at tabellen bliver oprettet ud fra dagens dato...
15. december 2005 - 00:47
#13
Nååå. Der kan man bare se. Men så kan en løsning jo være: $first_day = date("d")-date("w", time())+1; for($i = $first_day; $i < $first_day+5; $i++) { echo date("d.m.Y", mktime(0, 0, 0, date("m"), $i, date("Y")))."<br />"; }
15. december 2005 - 00:50
#14
Okay det virker, så skal den bare over i en funktionel "<TABLE>"
15. december 2005 - 00:52
#15
Kan du ikke selv lave html? Anyhoo, så f.eks.: echo "<table>"; $first_day = date("d")-date("w", time())+1; for($i = $first_day; $i < $first_day+5; $i++) { echo "<tr>"; echo "<td>"; echo date("d.m.Y", mktime(0, 0, 0, date("m"), $i, date("Y"))); echo "</td>"; echo "</tr>"; echo "</table>"; } echo "</table>";
15. december 2005 - 00:54
#16
Uden at afprøve det, ville jeg mene at det hele kommer til at stå i en kolone !
15. december 2005 - 00:57
#17
Korrekt, skal det stå på den anden led da? Så er det jo bare at rykke <tr> og </tr> udenfor løkken - ingen hokus pokus dér...
15. december 2005 - 01:01
#19
Ja, og det er ikke som den gør hvis du hiver <tr> og </tr> udenfor løkken som jeg skrev?
15. december 2005 - 01:02
#20
Dvs. <td>Dato 1</td><td>Dato 2</td><td>Dato 3</td><td>Dato 4</td><td>Dato 5</td>
15. december 2005 - 01:04
#21
Det er jeg med på - og også det jeg prøver at fortælle, men lader til at jeg ikke forklarer det godt nok :) echo "<table>"; echo "<tr>"; $first_day = date("d")-date("w", time())+1; for($i = $first_day; $i < $first_day+5; $i++) { echo "<td>"; echo date("d.m.Y", mktime(0, 0, 0, date("m"), $i, date("Y"))); echo "</td>"; } echo "</tr>"; echo "</table>"; (Og der var så også lige en fail i 2 gange </table>)
15. december 2005 - 01:04
#22
Hvis du vil have flere point, er det ikke noget problem... Du siger bare til...
15. december 2005 - 01:05
#23
Undskylder
15. december 2005 - 01:06
#24
Behøver du skam ikke - er her jo for at hjælpe :)
15. december 2005 - 01:07
#25
Hehe.. Okay, der må være en fejl et eller andet sted.. Nu vil den ikke vise siden...
15. december 2005 - 01:15
#26
Ved jeg ikke, det vil den gerne hos mig...
15. december 2005 - 01:18
#27
Okay... Har løst problem... Jeg takker, og beder dig ligge et svar... Fejlen var på min egen side...
15. december 2005 - 01:19
#28
Selv tak :)
15. december 2005 - 01:23
#29
Hmm.. Du kunne ikke tænke dig at tjene nogle flere point... ? Tror du kan løse det hurtigt...
15. december 2005 - 01:24
#30
Try me.
15. december 2005 - 01:28
#31
Nu da vi har lavet tabelen, kunne jeg godt tænke mig. At i stedet for at se en "uge" så kan man se 5 "uger" i alt
15. december 2005 - 01:29
#32
Det er vel noget med, at når man har fundet den første "mandag" skal man + med 7 for at få næste mandag osv.... Dette er bare et gæt !
15. december 2005 - 01:34
#33
Man kunne jo sige at den skal se 35 dage frem, istedet for 5 dage... Men den skal ikke vise lørdag, og søndage med :D
15. december 2005 - 01:42
#34
Hmm... Okay... Har selv løst det... Hehe... Newer mind... Men tak for hjælpen..
15. december 2005 - 01:42
#35
Ok, så gider jeg ikke prøve mere. Selv tak.
15. december 2005 - 01:44
#36
Hehe... Men så er der jo det med hvilken uge man er i ? :-)
15. december 2005 - 01:45
#37
Ikke forstået...?!
15. december 2005 - 01:46
#38
Du ved, der er ca. 52 uger på et år...
15. december 2005 - 01:48
#39
Yes, det er jeg godt klar over, men vil du have det udskrevet? Det har du da ikke snakket om før? Men ugenummeret er W i forbindelse med date()-funktionen.
15. december 2005 - 01:51
#40
Nej, har ikke snakket om det før nu... Vil gerne give flere point... :-) Kan du ikke skrive, lige som før ?
15. december 2005 - 01:55
#41
Jeg ved jo ikke længere hvordan din kode ser ud, og ej heller ved jeg hvor du vil have det stående. Men i forhold til min kode: echo "<table>"; echo "<tr>"; $first_day = date("d")-date("w", time())+1; echo "<td>"; echo "Ugenummer: ".date("W", mktime(0, 0, 0, date("m"), $first_day, date("Y"))); echo "</td>"; for($i = $first_day; $i < $first_day+5; $i++) { echo "<td>"; echo date("d.m.Y", mktime(0, 0, 0, date("m"), $i, date("Y"))); echo "</td>"; } echo "</tr>"; echo "</table>";
15. december 2005 - 02:01
#42
Prøver lige at se om jeg kan bikse lidt med den kode du har sendt mig...
15. december 2005 - 02:13
#43
Så... Lykkedes det... Tak for hjælpen igen... Det må være nok for idag ! Vil du have nogle flere point for dette... ?
15. december 2005 - 02:14
#44
Nej, nej, det er helt fint. Sov godt !
Vi tilbyder markedets bedste kurser inden for webudvikling