Avatar billede weblance Nybegynder
15. august 2007 - 19:06 Der er 10 kommentarer og
1 løsning

Hvordan laver man et "overløb" med date ?

Hvis nu date("W") er lig med 52 og man siger date("W")+4 bliver resultatet 56 . . . den du'r ikke. Hvordan laver man et "overløb" så man starter forfra fra 1 når man rammer 52? Det er ligemeget med skud år!

/Carl
Avatar billede nemlig Professor
15. august 2007 - 19:14 #1
Måske kunne du bruge funktionen %, som returner restværdien:
Eksempel:


$samletuger = 56;
$ugenr = $samletuger %52;

Dvs. $ugenr = 4
Avatar billede erikjacobsen Ekspert
15. august 2007 - 19:15 #2
Ikke alle år har 52 uger.

Hvad med
  date("W" time()+4*antalsekunderpåenuge)
Avatar billede erikjacobsen Ekspert
15. august 2007 - 19:16 #3
og så et komma
  date("W",time()+4*antalsekunderpåenuge)
Avatar billede nemlig Professor
15. august 2007 - 19:16 #4
Det skal så lige krydres med et par if-sætninger, nemlig:

1. hvis $samletuger < 52, så er $ugenr = $samletuger
2. hvis udregningen giver 0 (hvis samletuger = 52 er resultatet 0), sættes ugenr. til 52.
Avatar billede weblance Nybegynder
15. august 2007 - 23:36 #5
nemlig > det var lige det jeg skulle bruge!

Send et svar, så får du point...
Avatar billede weblance Nybegynder
15. august 2007 - 23:39 #6
nej, ved du hvad . . . erikjacobsen's løsning virker lige så godt . . . send du også et svar, så får i lov til at dele!
Avatar billede weblance Nybegynder
15. august 2007 - 23:44 #7
date("W",time()+$ugefrem*604800)

... regner skudår med.
Avatar billede weblance Nybegynder
15. august 2007 - 23:47 #8
Lavede lige et lille test script:

<form id="form1" name="form1" method="post" action="<?=$_SERVER["PHP_SELF"]?>">
  Indtast antal uger frem:
  <label>
  <input type="text" name="ugefrem" id="ugefrem" />
  </label>
  <p>
    <input type="submit" name="button" id="button" value="Submit" />
  </p>
</form>
<?php
$ugefrem = $_POST["ugefrem"]; 
$week = date("W");
$week_next = date("W",time()+$ugefrem*604800);

if (isset($_POST["ugefrem"])){
echo "Nuværende uge: " . $week . "<br>Du har valgt at vise " . $ugefrem . " uger frem, hvilket giver uge: " . $week_next;
}
else {}
?>
Avatar billede nemlig Professor
16. august 2007 - 08:14 #9
Godt du fik det til at virke. Hermed mit svar.
Avatar billede erikjacobsen Ekspert
16. august 2007 - 09:58 #10
Ingen point til mig, tak.
Avatar billede weblance Nybegynder
16. august 2007 - 11:18 #11
Det bestemmer du erik! Tak for hjælpen begge to.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester