11. juni 2013 - 21:05
Der er
29 kommentarer og 1 løsning
Tilføje danske hverdage i løkke med 5 omgange
Jeg har en fin løkke der med udgangspunkt i monday-this-week finder mandag til fredag. Så får jeg skrevet datoerne ud. ...date('Y/m/d', strtotime($year."W".$week_number.$day)) Kan jeg tilføje ugedage - PÅ DANSK?
Annonceindlæg fra Infor
Jeg har godt læst hans indlæg, men... Når jeg smider et "l" ind, hvordan kobler jeg det så sammen med et array med danske ugedage? ...date('l Y/m/d', strtotime($year."W".$week_number.$day)) Her er output'et: Monday 2013/06/10
Eksempel: <?php date_default_timezone_set('MET'); //setlocale(LC_ALL, 'da_DK'); // *nix setlocale(LC_ALL, 'dan_DNK'); // windows $t = time(); echo strftime('%A %d/%m/%Y', $t); ?>
Jeg vil klart fraraade egen definerede arrays.
Hvis jeg skal bruge dit forslag, hvordan kan jeg så sende det igennem en løkke fem omgange, hvor startdatoen er givet? Jeg bestemmer først den aktuelle eller en valgt uge og ud fra den finder jeg mandagens dato og ud fra den vil gerne have ugens fem hverdage.
Hvis jeg bruger denne: $year = date('Y'); for($day=1; $day<=5; $day++) { echo "Uge: " . $week_number . " - " . date('l Y/m/d', strtotime($year."W".$week_number.$day))."<br />"; echo "Uge: " . $week_number . " - " . strftime('%A %Y-%m-%d', $t)."<br />"; } får jeg fem tirsdage...
Ja. $t skal vel vaere strtotime($year."W".$week_number.$day)
$year = date('Y'); $t = time(); for($day=1; $day<=5; $day++) { echo "Uge: " . $week_number . " - " . date('l Y/m/d', strtotime($year."W".$week_number.$day))."<br />"; echo "Uge: " . $week_number . " - " . strftime('%A %Y-%m-%d',$t)."<br />"; echo "Uge: " . $week_number . " - " . time(strtotime($year."W".$week_number.$day))."<hr />"; } Uge: 24 - Monday 2013/06/10 Uge: 24 - tirsdag 2013-06-11 Uge: 24 - 1370986887
12. juni 2013 - 00:32
#10
Proev og forklar paa dansk hvad hver linie goer, saa boer fejlen vaere nem at finde og rette.
12. juni 2013 - 06:58
#11
Det kan jeg ikke... Dag = 1, indtil den er = 5; dag = 1 + 1 = 2 + 1 = 3 + 1 = 4 + 1 = 5 = stop date opererer med datoer time med tid fra 1970 c'est ce que!
12. juni 2013 - 15:25
#12
Giver du hint? Gerne med en vognstang...
12. juni 2013 - 17:12
#13
hvad goer: strftime('%A %Y-%m-%d',$t) ?
12. juni 2013 - 17:18
#14
Skriverlokal(dansk)tid('Uge ÅÅÅ-n(måned)-n(dag),xn(som bestemmes udenfor løkken)?
12. juni 2013 - 17:23
#15
Nej - den udskriver den tid som er i $t i det angivne format. Og hvilken vaerdi har $t? Og hvilken skulle den have?
12. juni 2013 - 17:29
#16
$t har tid i sekunder siden 1970, men burde omregnes til 60*60*24*7 eller 365?
12. juni 2013 - 17:34
#17
$t for vaerdi her: $t = time();
12. juni 2013 - 17:39
#18
1371051495 = 43, år?
12. juni 2013 - 17:41
#19
time() returnerer nu. strtotime($year."W".$week_number.$day) returnerer formentligt det du vil have.
12. juni 2013 - 17:48
#20
Beklager. Jeg er helt blank. Her er de fire løsninger: echo "Uge: " . $week_number . " - " . date('l Y/m/d', strtotime($year."W".$week_number.$day))."<br />"; echo "Uge: " . $week_number . " - " . date(strftime('%A %Y-%m-%d',$t))."<br />"; echo "Uge: " . $week_number . " - " . time(strtotime($year."W".$week_number.$day))."<br />"; echo "Uge: " . $week_number . " - " . strtotime($year."W".$week_number.$day)."<hr />"; ... og her er outputtet; Uge: 24 - Monday 2013/06/10 Uge: 24 - 201361212pm5 2013-06-12 Uge: 24 - 1371051972 Uge: 24 - 1370815200 Det ønskede resultat er: Uge: 24 - Mandag 2013/06/10 ... og jeg begriber ikke, hvordan jeg omregne time() til ugedag på dansk.
12. juni 2013 - 17:49
#21
Mangler lige: $year = date('Y'); $t = time(); for($day=1; $day<=5; $day++) { ... }
12. juni 2013 - 18:18
#22
echo "Uge: " . $week_number . " - " . strftime('%A %Y-%m-%d',strtotime($year."W".$week_number.$day))."<br />";
12. juni 2013 - 18:38
#23
Det virker! Jeg læser...
12. juni 2013 - 18:45
#24
Jeg kan ikke forklare det. Hvorfor røg $t ud? Og selvom setlocale() er sat, hvordan kommer den så fra fx 1370901600 -> 43,.. år -> dage?
12. juni 2013 - 19:03
#25
Du kunne ogsaa have brugt: $t = strtotime($year."W".$week_number.$day); echo "Uge: " . $week_number . " - " . strftime('%A %Y-%m-%d',$t)."<br />"; det vigtige er ikke om der er en midlertidig variabel $t eller ej - det vigtige er hvilken vaerdi argument nummer 2 til strftime har.
12. juni 2013 - 19:04
#26
setlocale(LC_ALL, 'dan_DNK'); goer at den skriver tirsdag og ikke Tuesday.
12. juni 2013 - 19:04
#27
omregningen fra antal sekunder siden 1970 til en rigtig kalendertid er lidt kompleks, men det kan goers og PHP goer det for dig.
12. juni 2013 - 19:15
#28
Jeg siger i alle fald tak (også for pædagogisk drilleri). Nu virker alt som det skal og jeg endda se, hvordan jeg kan skille datosekvensen ad i det senere forløb. Tak, tak.
12. juni 2013 - 19:23
#29
saa smider jeg et svar
12. juni 2013 - 19:26
#30
En beskeden sum.
Vi tilbyder markedets bedste kurser inden for webudvikling