Avatar billede duuink Nybegynder
02. maj 2006 - 12:21 Der er 16 kommentarer og
1 løsning

datoløkke

Hej derude...

Jeg mangler et script som laver en løkke:

jeg vil have den til at opskrive f.eks. alle onsdage i en afgrænset periode.

f.eks. mellem den 5 maj til den 7 juli

håber i forstår spørgsmålet
Avatar billede TRoXa Novice
02. maj 2006 - 12:32 #1
må vel være noget i retning med:

function findonsdag($startdag,$startmaaned,$startaar,$slutdag,$slutmaaned,$slutaar)
{
    for ($i = $startaar; $i <= $slutaar; $i++)
    {
        for ($j = $startmaaned; $j <= $slutmaaned; $j++)
        {
            for ($k = $startdag; $k <= $slutdag; $k++)
            {
                $dag = date("l", mktime(0,0,0,$j,$k,$i));
                if ($dag == 'Wednesday') { echo 'Onsdag D. ' . $k . '-' . '$j . '-' . $i . '<br>'; }
            }

        }
    }
}

Der tages forbehold for trykfejl :P Ved ikke om det virker 100%, men det kan ihvertfald gøres på den måde eller noget der minder om det. :)
Avatar billede duuink Nybegynder
02. maj 2006 - 12:34 #2
ser meget fornuftigt ud ;P du får point når jeg har testet det igennem - lover jeg - skal lige filtre det ind i systemet ;D
Avatar billede TRoXa Novice
02. maj 2006 - 12:39 #3
Nu er den afprøvet

<?

function findonsdag($startdag,$startmaaned,$startaar,$slutdag,$slutmaaned,$slutaar)
{
    for ($i = $startaar; $i <= $slutaar; $i++)
    {
        for ($j = $startmaaned; $j <= $slutmaaned; $j++)
        {
            for ($k = $startdag; $k <= $slutdag; $k++)
            {
                $dag = date("l", mktime(0,0,0,$j,$k,$i));
                if ($dag == 'Wednesday') { echo 'Onsdag D. ' . $k . '-' . $j . '-' . $i . '<br>'; }
            }

        }
    }
}

findonsdag(01,01,2006,31,05,2006);

?>

virker fint :)

kan ses på http://www.axort.dk/findonsdag.php
Avatar billede TRoXa Novice
02. maj 2006 - 12:39 #4
fra 1. Januar 2006 til 31 Maj 2006
Avatar billede morhan Novice
02. maj 2006 - 12:40 #5
troxa, hvad nu hvis det var fra 1. januar 2006 til 1. januar 2007?
Avatar billede TRoXa Novice
02. maj 2006 - 12:44 #6
ja okay min funktion virker kun hvis det er samme år åbenbart :)
Avatar billede morhan Novice
02. maj 2006 - 12:45 #7
så lad os sige 1. januar til 1. maj 2006 :)
Avatar billede TRoXa Novice
02. maj 2006 - 12:45 #8
<-- ligger mig tilbage i sengen :P g'nat
Avatar billede morhan Novice
02. maj 2006 - 12:55 #9
$start = strtotime("5 may 2006");
$slut = strtotime("7 july 2006");
$secs_per_day = 60*60*24;

for( ; $start <= $slut; $start += $secs_per_day){
    if(date("N", $start) == "3"){
        echo "Ondsdag d. " . date("d/n-Y", $start) . "<br>";
    }
}
Avatar billede morhan Novice
02. maj 2006 - 12:56 #10
Nej, onsdag er ikke en ond dag =)
Avatar billede TRoXa Novice
02. maj 2006 - 13:05 #11
<?
function findonsdag($startdag,$startmaaned,$startaar,$slutdag,$slutmaaned,$slutaar)
{
    $startdag = strtotime($startmaaned . '/' . $startdag . '/' . $startaar,time());
    $slutdag  = strtotime($slutmaaned . '/' . $slutdag . '/' . $slutaar,time());
    for($nu=$startdag; $nu<=$slutdag; $nu=strtotime("+1 days",$nu))
    {
        $dag = date("l", $nu);
        $dato = date("d-m-Y", $nu);
                if ($dag == 'Wednesday') { echo 'Onsdag D. ' . $dato . '<br>'; }
    }
}

findonsdag(01,01,2006,31,05,2006);
?>

så må det blive sådan der istedet og kan ses på

http://www.axort.dk/findonsdag2.php
Avatar billede TRoXa Novice
02. maj 2006 - 13:05 #12
morhan: du har stavet onsdag forkert i dit eksempel :P
Avatar billede TRoXa Novice
02. maj 2006 - 13:06 #13
findonsdag(01,01,2006,31,12,2008); <- den der blir brugt i findonsdag2.php
Avatar billede duuink Nybegynder
02. maj 2006 - 13:08 #14
sikke en masse ;D

ser godt ud =)

er virkelig taknemmelig for jeres hjælpsomhed
Avatar billede TRoXa Novice
02. maj 2006 - 13:18 #15
morhan: Dit eksempel virker ikke ;o)
Avatar billede codebase Praktikant
02. maj 2006 - 21:28 #16
ikke slås ;)

<?
$start_date = mktime(0, 0, 0, 5, 5, 2006);
$stop__date = mktime(0, 0, 0, 7, 7, 2006);
$secs_per_day = 60*60*24;
$date = $start_date;
while( $date <= $stop__date )
{
    if ( date("w", $date)+1 == 3 )
        echo date("Y/m/d", $date+$secs_per_day) . "<br>";
   
    $date += $secs_per_day;
}
?>

med lidt kode fra jer alle sammen, har jeg sammensat ovenstående som er testet og virker :)
Avatar billede TRoXa Novice
03. maj 2006 - 13:07 #17
Vi slås da ikke :P men mit sidste eksempel virker 100%, så det var nu ikke nødvendigt med endnu et eksempel :)
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