Avatar billede r.hegaard Nybegynder
30. august 2003 - 13:14 Der er 20 kommentarer og
3 løsninger

Angive hvilken uge vi er i

Hvordan kan man få en php side til at angive hvilken uge man er i, og hvilken uge det var i sidste uge ???
Avatar billede sesam Nybegynder
30. august 2003 - 13:20 #1
<?php
$week = date(W);
$lastweek = date(W)-1;

echo $week;
echo $lastweek;
?>
Avatar billede taskmgr Nybegynder
30. august 2003 - 13:20 #2
<?
$this_week = date("W",time());

echo "Denne uge: ".$this_week."<br>";

if($this_week=="1"){
  $last_week = 52;
}else{
  $last_week = $this_week-1;
}
echo "Sidste uge: ".last_week;
?>
Har ladrig brugt funktionen før, men det skulle gøre det :)
Avatar billede taskmgr Nybegynder
30. august 2003 - 13:21 #3
"aldrig"
Avatar billede taskmgr Nybegynder
30. august 2003 - 13:23 #4
<?
$this_week = date("W");

echo "Denne uge: ".$this_week."<br>";

if($this_week=="1"){
  $last_week = 52;
}else{
  $last_week = $this_week-1;
}
echo "Sidste uge: ".$last_week;
?>
Avatar billede sesam Nybegynder
30. august 2003 - 13:23 #5
<?
$this_week = date("W",time());

echo "Denne uge: ".$this_week."<br>";

if($this_week=="1"){
  $last_week = 52;
}else{
  $last_week = $this_week-1;
}
echo "Sidste uge: ".$last_week;
?>
Manglede lige et $ tegn
Se bare bort fra min tager ikke højde for uge 52...
Avatar billede taskmgr Nybegynder
30. august 2003 - 13:27 #6
?!?!
Avatar billede taskmgr Nybegynder
30. august 2003 - 13:29 #7
Læg i øvrigt mærke til, at det kun virker fra php 4.1.0 og op...
Avatar billede sesam Nybegynder
30. august 2003 - 13:29 #8
Jeg påpegede bare at du manglede et 4 tegn og sagde at han skulle se bort fra mit svar...
Avatar billede sesam Nybegynder
30. august 2003 - 13:29 #9
4 -> $ tegn ,)
Avatar billede detox Nybegynder
30. august 2003 - 13:32 #10
Læg i øvrigt mærke til at date("W") ikke bruger ISO 8601:1988, så det virker ikke ift. det danske kalendersystem.
Avatar billede taskmgr Nybegynder
30. august 2003 - 13:32 #11
Ok, fair nok :)
Avatar billede detox Nybegynder
30. august 2003 - 13:34 #12
Og at et år kan indeholde 53 uger.
Avatar billede detox Nybegynder
30. august 2003 - 13:39 #13
Sorry, date("W") er jo netop ISO 8601:1988.
Avatar billede detox Nybegynder
30. august 2003 - 13:44 #14
Et eksempel, hvor vi har 53 uger:

<?
echo date('W', mktime(0,0,0,1,3,2005))."<br />";
echo date('W', mktime(0,0,0,1,3,2005)-60*60*24*7);
?>
Avatar billede detox Nybegynder
30. august 2003 - 13:47 #15
Så jeg vil nok foretrække noget i den her stil:

echo "Denne uge: ".date('W')."<br />";
echo "Sidste uge: ".date('W', time()-60*60*24*7);
Avatar billede r.hegaard Nybegynder
30. august 2003 - 18:52 #16
Jeg synes ikke helt det det stemmer overens med vores kalendersystem....
Den kan ikke klare at fortsætte en uge ind i det næste år, eller at starte på uge 1 i slutningen af et år. Er der ikke noget at gøre ved det ??
Hvordan får man den til at vise ugens nummer med 2 cifre ??
Avatar billede detox Nybegynder
31. august 2003 - 01:57 #17
Har du overhovedet prøvet, det går da fint. Og med to cifre:

<?
printf('Den 29-12-2003 er uge %02u<br />', date('W', mktime(0,0,0,12,29,2003)));
printf('Den 02-01-2005 er uge %02u<br />', date('W', mktime(0,0,0,1,2,2005)));
?>
Avatar billede detox Nybegynder
31. august 2003 - 02:00 #18
Og hvis du skal bruge ugen med to cifre i en variabel:

<?
$uge = sprintf('%02u', date('W', mktime(0,0,0,12,29,2003)));
echo $uge;
?>
Avatar billede r.hegaard Nybegynder
22. september 2003 - 16:28 #19
Hvis jeg skriver koden:
<?
printf('Den 31.-12. 2002 er uge %02u<br />', date('W', mktime(0,0,0,12,31,2002)));
printf('Den 1.-1. 2003 er uge %02u<br />', date('W', mktime(0,0,0,1,1,2003)));
?>

Så kommer den med resultatet:
Den 31.-12. 2002 er uge 53
Den 1.-1. 2003 er uge 01

Selvom den 31.-12. 2002 er i samme uge som 1.-1. 2003. Hvordan får man den til at gøre det rigtigt ??
Avatar billede detox Nybegynder
22. september 2003 - 21:12 #20
Der må være noget galt med dit system, for den selv samme kode giver et andet output her hos mig:

Den 31.-12. 2002 er uge 01
Den 1.-1. 2003 er uge 01

Så er jeg ikke sikker på om det er operativsystemet eller php den er gal med, men et eller andet fungerer ikke som det skal.
Avatar billede r.hegaard Nybegynder
22. september 2003 - 21:27 #21
Jeg har prøvet både hos min udbyder (b-one) og på min egen Apache server med PHP.
Men jeg har fået det til at virke nu med et par if-sætninger.
Lægger du ikke lige et svar detox ??
Avatar billede detox Nybegynder
22. september 2003 - 21:32 #22
Jo, jeg synes det er utilfredsstillende at det ikke fungerer på alle systemer. Jeg har kun testet det lokalt på apache/winxp (php 4.3.3), men jeg tror det er operativsystemet og ikke php der fejler.
Avatar billede r.hegaard Nybegynder
22. september 2003 - 21:38 #23
OK, tak for hjælpen...
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