Avatar billede jevbabz Nybegynder
24. november 2006 - 13:41 Der er 13 kommentarer og
1 løsning

Printe uger fra bestemt dato til nytår

Hejsa

Er igang med et bookings system som skal køre på uge basis. Derfor vil jeg gerne have sådan at den kan skrive alle uger frem til nytår altså feks
Alle uger fra den 11/11-06 til den sidste dag i året.

Hvordan? :)

Jesper
Avatar billede coderdk Praktikant
24. november 2006 - 14:00 #1
Ugenumre eller?
Avatar billede mccookie Seniormester
24. november 2006 - 15:09 #2
$uge_slut = date('W', strtotime(date('Y1231')));
$uge_start = date('W', strtotime(date('Ymd')));

while($uge_start <= $uge_slut) {

echo "Uge nr.: " . $uge_start . "<br />";

$uge_start++;
}

Et bud
Avatar billede jevbabz Nybegynder
24. november 2006 - 17:22 #3
jae ugenummer. feks i næste uge er det uge 47, 48, 49 osv :)
Avatar billede coderdk Praktikant
24. november 2006 - 17:36 #4
Hvad med:

$date = strtotime( "+1 week" );
$uger = array();
while ( strftime( "%V", $date ) != 1 )
{
  $uger[] = strftime( "%V", $date );
  $date = strtotime( "+1 week", $date );
}
echo "Kommende uger: " . implode( ", ", $uger );

:)
Avatar billede coderdk Praktikant
24. november 2006 - 17:37 #5
Hvis det skal være fra 11/11 så lav:

$date = strtotime( "+1 week" );

om til:

$date = strtotime( "2006-11-11" );
Avatar billede jevbabz Nybegynder
24. november 2006 - 17:38 #6
Prøver :d
Avatar billede jevbabz Nybegynder
24. november 2006 - 17:45 #7
Kan man få det til at stå så det bliver i en drop down? altså man kan se hver enkelt uge? :) Så det hele ikke bliver udskrevet i en!
Avatar billede coderdk Praktikant
24. november 2006 - 17:54 #8
Yep, f.eks.:

$date = strtotime( "2006-11-11" );
$uger = array();
echo '<select name="ugenummer">';
while ( strftime( "%V", $date ) != 1 )
{
  echo '<option value="' . strftime( "%V", $date ) . "'>Uge' . strftime( "%V", $date ) . '</option>';
  $date = strtotime( "+1 week", $date );
}
echo '</select>';
Avatar billede jevbabz Nybegynder
24. november 2006 - 18:16 #9
aha, hvis jeg nu istedet for 2006 i strtotime skal have informationen fra en form som kommer fra en anden side hvad skal jeg så gøre? $_POST[aar] virker ikke helt
Avatar billede jevbabz Nybegynder
24. november 2006 - 18:19 #10
Altså har gjort sådan her

$date = strtotime( "$_POST[aar]-11-11" );


men uden held
Avatar billede coderdk Praktikant
24. november 2006 - 19:10 #11
Det burde virke, såfremt aar er i yyyy-format...
Avatar billede jevbabz Nybegynder
24. november 2006 - 21:12 #12
kan ikke få det til at virke så man kan ugerne fra næste år os.

kig i min kode
<?
if(isset($_POST[aar])) {
?>
<form method="post" action="vealguge.php">
Jeg ønsker at resevere fra uge <select name='aa34r' style='width: 80px;'>

<?
$ugeslut = date('W', strtotime( "$_POST[aar]1231" ));
$dato23 = date('Y');
if($_POST[aar] == $dato23) {
$ugestart = date('W', strtotime(date( "$_POST[aar]md" )));
}
else {
$ugestart = date('W', strtotime( "$_POST[aar]0101" ));
}

while($ugestart <= $ugeslut) {

echo "<option value='$ugestart'>$ugestart</option>";

$ugestart++;
}
?>
</select> og jeg ønsker at være der i
<select name='aar2' style='width: 80px;'>
<option value='1'>1 uge</option>
<option value='2'>2 uger</option>
<option value='3'>3 uger</option>
<option value='4'>4 uger</option>
</select><br>
<input type="submit" src="../../opret.jpg" value="Videre" name="B1">
</form>
<?
}
else {
?>
<?php
$dato2 = date('Y');
$dato3 = date('Y')+1;
$dato4 = date('Y')+2;
echo "
<form method=\"post\" action=\"$_SERVER[PHP_SELF]\">
<select name='aar' style='width: 80px;'>
<option value='$dato2' selected>$dato2</option>
<option value='$dato3'>$dato3</option>
<option value='$dato4'>$dato4</option>
</select>
<input type=\"submit\" value=\"Videre\">
</form>";
?>
<?
}
?>

www.go-to-sweden.dk/udlej/

den virker kun ved år 2006
Avatar billede coderdk Praktikant
24. november 2006 - 22:05 #13
Jeg er lidt træt, så jeg kan ikke lige overskue din kode :)
Her er noget jeg lige stykkede sammen:

<?php

function skrivUgeOptionsForDato( $y, $m, $d )
{
    $date = strtotime( "$y-$m-$d" );
    $first = true;
    while ( ( strftime( "%V", $date ) != 1 && !$first ) || $first )
    {
        echo '<option value="' . strftime( "%V", $date ) . '">Uge ' .
            strftime( "%V", $date ) . '</option>';
        $date = strtotime( "+1 week", $date );
        $first = false;
    }
}

    $aar = 2007;
    $dag = 20;
    $maaned = 2;

?>
<form method="post">
    Jeg ønsker at resevere fra uge <select name='aar' style='width: 80px;'>
    <?php skrivUgeOptionsForDato( $aar, $maaned, $dag ); ?>
    </select>
    <input type="submit" value="Videre" name="B1">
</form>
Avatar billede coderdk Praktikant
24. november 2006 - 22:06 #14
Denne linje:

$date = strtotime( "$y-$m-$d" );

vil nok være bedst at erstatte med:

$date = mktime( 0, 0, 0, $m, $d, $y );

Da den nok performer bedre :)
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