Avatar billede sdfh Nybegynder
03. maj 2000 - 10:17 Der er 6 kommentarer og
1 løsning

Uge beregninger

Jeg mangler en metode så jeg kan tage dagsdato, finde ud af hvilken uge den ligger i, finde start- og slutdato på ugen.
Tja det var det.
Den bliver kun nomineret til 30, da jeg tror det er en standard function man bare vide hvad hedder!!
Avatar billede steffen Nybegynder
03. maj 2000 - 10:31 #1
Et par eksempler (stjålet fra www.php.net):

Hvis dine uger starter med søndag:

function weekofyear() {
$d = 1;
while (date("w",mktime(0,0,0,1,$d,date("Y"))) != 1) {
  $d++;
};
return(floor((date("z")-$d+13)/7.0)-1);
}

Hvis de starter med mandag:

function weekofyear() {
/* array for switching the week to begin
  from monday instead of sunday */
$week=array(6,0,1,2,3,4,5);
$p=$week[date("w",mktime(0,0,0,1,1,date("Y")))];
if($p<4)
        $start=$pB+1;
else 
        $start=$p+($p-7);
$today=$week[date("w")];
/* no rounding is needed since we
always get full weeks */
return(((date("z")-$today+1)-$start)/7+1);
}
Avatar billede sdfh Nybegynder
03. maj 2000 - 10:38 #2
Til steffen:
Jeg har set de functioner, men jeg ønsker ikke at anvende andres kode medmindre jeg kan gennemskue det!
Men mine uger starter med Mandag.
Nu mangler jeg bare functionen som kan fortælle mig start- og slut dato på et uge nr.
Avatar billede steffen Nybegynder
03. maj 2000 - 10:44 #3
OK - det er bare at lægge lidt til eller trække lidt fra, prøver lige at rette det til.
Avatar billede steffen Nybegynder
03. maj 2000 - 11:30 #4
Nu kom jeg væk fra det .. men her er det:

Ovenstående suppleres med:

function weekstart_mon() {
/* array for switching the week to begin
  from monday instead of sunday */
$week=array(6,0,1,2,3,4,5);
$p=$week[date("w",mktime(0,0,0,1,1,date("Y")))];
if($p<4)
        $start=$pB+1;
else 
        $start=$p+($p-7);
$today=$week[date("w")];
/* no rounding is needed since we
always get full weeks */
$ugestart = mktime(0,0,0,date("m")  ,date("d")-$today,date("Y"));
return $ugestart; }

og:

function weekend_mon() {
/* array for switching the week to begin
  from monday instead of sunday */
$week=array(6,0,1,2,3,4,5);
$p=$week[date("w",mktime(0,0,0,1,1,date("Y")))];
if($p<4)
        $start=$pB+1;
else 
        $start=$p+($p-7);
$today=$week[date("w")];
/* no rounding is needed since we
always get full weeks */
$ugeslut = mktime(0,0,0,date("m")  ,date("d")+(6-$today),date("Y"));
return $ugeslut; }

Og der kan så skrives:

<?
echo "Vi er i uge: '".weekofyear_mon()."'<BR>\n";
echo "Ugen startede: '".date ('l dS of F Y', weekstart_mon())."' og slutter: '".date ('l dS of F Y', weekend_mon())."'<BR>\n";
?>

Formater unix-timestampet som du har lyst, naturligvis.

Kører på: http://www.datamatikeruddannelsen.dk/spouls1/phptryouts/weekofyear.php3

og kan hentes fra:
http://www.datamatikeruddannelsen.dk/spouls1/phptryouts/weekofyear.zip
Avatar billede sdfh Nybegynder
03. maj 2000 - 11:41 #5
function weekofyear() {
/* array for switching the week to begin
  from monday instead of sunday */
$week=array(6,0,1,2,3,4,5);
$p=$week[date("w",mktime(0,0,0,1,1,date("Y")))];
if($p<4)
        $start=$pB+1; **obs: skuller der ikke stå "$start=$p+1;" her***
else 
        $start=$p+($p-7);
$today=$week[date("w")];
/* no rounding is needed since we
always get full weeks */
return(((date("z")-$today+1)-$start)/7+1);
}
Avatar billede sdfh Nybegynder
03. maj 2000 - 11:46 #6
En sidste kommentar:
Jeg har nu kode nok til at lave det selv, jeg har gennemskuet functionerne.
Men jeg ville lave en function som gjorde følgende
function dates_of_week($input_week)
{
$start_date = $input_week's startdato;
$end_date = $input_week's slutdato;
$week_dates="$start_date".":"."$end_date";
return $week_dates;
}
Avatar billede steffen Nybegynder
03. maj 2000 - 11:49 #7
jow :-)
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