15. april 2007 - 14:41
Der er
17 kommentarer og 1 løsning
første og sidste dag i uge
Jeg har fået denne kode her på eksperten i et andet sprøgsmål, men jeg har aldrig rigtig fået den til at virke, så nu prøver jeg lige igen. Det jeg skal er at finde unix timestamp for første og sidste dag i ugen for at kunne lave en mysql query. MANDAG skal være første dag i ugen: $today = time(); $weekday = strftime( "%w", $today ); $beginweek = strtotime( "-" . $weekday . " DAY", $today ); $endweek = strtotime( "+" . 7 - $weekday . " DAY", $today ); $maned = strftime( "%B", $today ); $ar = strftime( "%Y", $today ); $hent_kbhuge = "SELECT * FROM kalender WHERE sted='kobenhavn' AND dato BETWEEN $beginweek AND $endweek ORDER BY dato ASC"; Jeg VED at min $weekday bør være $weekday = strftime("%u", $today); og ikke $weekday = strftime("%w", $today); hvis mandag og ikke søndag skal være dag 1, men jeg får intet output af ("%u", $today)... irriterer mig voldsomt :0) Nogen der kan hjælpe?
Annonceindlæg fra SuperOffice
15. april 2007 - 15:29
#1
Hmm..jeg ved ikke hvad den kode du har fået gør men hvis jeg skulle bruge sidste Mandag, og næste Søndag, tror jeg jeg ville gøre sådan her.. <?php $today=strftime("%u"); $first=mktime(0, 0, 0, date("m"), date("d")-($today-1), date("Y")); $last=mktime(0, 0, 0, date("m"), date("d")+7-$today, date("Y")); echo "<pre>".strftime("%A %d %B %Y %H:%M:%S", $first)."</pre>"; echo "<pre>".strftime("%A %d %B %Y %H:%M:%S", $last)."</pre>"; ?> ..men så skal du være opmærksom på at der jo mangler hele søndagen !, perioden går fra midnat mellem Søndag og Mandag til midnat mellem Lørdag og Søndag, hvis du vil have den til at gå til midnat mellem Søndag og Mandag skal det nok se sådan her ud.. <?php $today=strftime("%u")-1; $first=mktime(0, 0, 0, date("m"), date("d")-($today), date("Y")); $last=mktime(0, 0, 0, date("m"), date("d")+7-$today, date("Y")); echo "<pre>".strftime("%A %d %B %Y %H:%M:%S", $first)."</pre>"; echo "<pre>".strftime("%A %d %B %Y %H:%M:%S", $last)."</pre>"; ?> Mvh. Johan
15. april 2007 - 15:36
#2
Det giver mandag 16 april 2007 00:00:00 mandag 23 april 2007 00:00:00 Det jeg skal bruge er mandag og søndag i denne uge.. altså mandag 9 april søndag 15 april
15. april 2007 - 15:40
#3
Altså din sidste forslag :0)
15. april 2007 - 15:40
#4
Hm..mærkeligt når jeg tester får jeg.. Monday 09 April 2007 00:00:00 Sunday 15 April 2007 00:00:00 På den første, og.. Monday 09 April 2007 00:00:00 Monday 16 April 2007 00:00:00 På den sidste...??? Mvh. Johan
15. april 2007 - 15:43
#5
hm.... underligt...
15. april 2007 - 15:44
#6
Prøv denne her... <?php $today=strftime("%u"); echo "<pre>".$today."</pre>"; $first=mktime(0, 0, 0, date("m"), date("d")-($today-1), date("Y")); $last=mktime(0, 0, 0, date("m"), date("d")+7-$today, date("Y")); echo "<pre>".strftime("%A %d %B %Y %H:%M:%S")."</pre>"; echo "<pre>".strftime("%A %d %B %Y %H:%M:%S", $first)."</pre>"; echo "<pre>".strftime("%A %d %B %Y %H:%M:%S", $last)."</pre>"; ?> Hvad får du så af output ? Mvh. Johan
15. april 2007 - 15:47
#7
søndag 15 april 2007 15:48:04 mandag 16 april 2007 00:00:00 søndag 22 april 2007 00:00:00
15. april 2007 - 15:48
#8
Tester du hjemme, eller hos en udbyder, og hvis det er derhjemme er det så på en windows platform ? Mvh. Johan
15. april 2007 - 15:50
#9
hos en udbyder.. og jeg ved faktisk ikke hvilken platform... men det kan jeg vel finde ud af...
15. april 2007 - 15:52
#10
Nej det er ikke nødvendigt, det er højst sandsynligt noget Unix noget :) Det er som du ganske rigtigt skriver strftime("%u") der ikke returnere noget som helst....??? ...tænker... Mvh. Johan
15. april 2007 - 15:57
#11
Ikke særligt kønt, men prøv dette... <?php $today=strftime("%w"); if($today==0) { $today=7; } echo "<pre>".$today."</pre>"; $first=mktime(0, 0, 0, date("m"), date("d")-($today-1), date("Y")); $last=mktime(0, 0, 0, date("m"), date("d")+7-$today, date("Y")); echo "<pre>".strftime("%A %d %B %Y %H:%M:%S")."</pre>"; echo "<pre>".strftime("%A %d %B %Y %H:%M:%S", $first)."</pre>"; echo "<pre>".strftime("%A %d %B %Y %H:%M:%S", $last)."</pre>"; ?> Bliver nød til at 'forlade' dig et øjeblik :) Mvh. Johan
15. april 2007 - 16:02
#12
7 søndag 15 april 2007 16:02:16 mandag 09 april 2007 00:00:00 søndag 15 april 2007 00:00:00 Okay... der kom mandag og søndag... kigger lige.. skriver hvis jeg ikke hitter det :0)
15. april 2007 - 16:08
#13
Super :0) Kønt eller ej, læg et svar. Tak for hjælpen.
15. april 2007 - 16:09
#14
$monday = strtotime("last Monday", strtotime("tomorrow")); $sunday = strtotime("next Sunday", strtotime("yesterday")) + 23*3600+59*60+59; echo date('l dS \of F Y h:i:s A', $monday)."<br>"; echo date('l dS \of F Y h:i:s A', $sunday);
15. april 2007 - 17:35
#15
Det kommer her :) Klippet fra php.net (strftime)... Not all conversion specifiers may be supported by your C library, in which case they will not be supported by PHP's strftime() Det kunne da være nyttigt at vide hvilken platform din udbyder 'kører' ? Mvh. Johan
15. april 2007 - 20:37
#16
Det kunne det ja :0)
16. april 2007 - 08:01
#17
Det er en windows platform.... Så det burde jo virke med den første kode du postede...
16. april 2007 - 13:11
#18
En windows platform..okay..ja det var egentligt mærkeligt..??..men nu er jeg ikke vildt stærk i C library osv..men der 'mangler' åbenbart noget der..sjovt..:) Mvh. Johan
Vi tilbyder markedets bedste kurser inden for webudvikling