Array.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • apaaa
    Medlem
    • 2005-11-15
    • 59

    #1

    Array.

    Om man lägger en array som er ut som följande

    $dagar = array("Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday");

    om jag vill skapa en while som tar reda vilken dag det är typ

    $d = "1";
    while (date("l") != $dagar($d)) {
    $d++;
    }

    Hur skall jag få $dagar($d) att vara en sträng?
  • SPiN
    Medlem
    • 2000-03-12
    • 5832

    #2
    Hm. Vet inte riktigt vad du vill åstadkomma? 'date("l")' ger ju dagen i sträng-format?

    Din array innehåller för övrigt bara ett element. Elementet "Monday, Tuesday, Wednesday, osv".
    PHP Code:
    $dagar = array("Monday", "Tuesday", "Wednesday", osv); 
    
    Och eftersom att $d ska vara en räknare, bör den vara av typen integer - för tillfället är den en sträng (eftersom att du deklarerar den med citationstecken).
    PHP Code:
    $d = 1; 
    
    "Knock off the hippie shit, strap on a helmet and start shooting. This is Malibu, baby! I want you to storm that beach like it's fuckin' Normandy!"

    Comment

    • apaaa
      Medlem
      • 2005-11-15
      • 59

      #3
      Hej.

      Jag håller på att bygga ett löne/tidsrappoteringssystem till våra firma. Håller på och bygger kalendern till det men märker att åren har tagit bort mitt minne, känns som man glömt allt

      I.a.f. Det jag försöker göra är att få $d till den dag det är i veckan.

      Måndag = 1
      Tisdag = 2
      Onsdag 3 o.s.v.

      Känner att mitt system som jag håller på och klurar på inte håller.

      [kod]
      <?php
      echo date("l") . "<br><br>";

      $dagar = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
      $dag = date("l");

      $d = 1;

      while ($dag != ($dagar[1]) {
      $d++;
      }

      $a = date("d");
      $week = date("W");


      while ($a <= 31) {

      if ($a > 7) {
      $a = $a - 7;
      $week = date("W") - 1;

      }

      elseif ($a < 7) {

      if ($dag == "Monday") {
      $week = $week -1;


      }

      $a = $a -1;

      if ($a == 1) {
      break;
      }
      }

      }

      echo "week: " . $week;
      echo "day; " . $a;



      ?>

      <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
      <td><?php echo date("F") . "<br>"; ?></td>
      </tr>
      <tr>
      <td><table width="100%" border="0" cellspacing="0" cellpadding="0">
      <?php
      $weekp = 7;
      while ($a <=31) {

      echo "<tr>";
      echo "<td>" . $week . "</td>";
      echo "<td>" . $a . "</td>";
      echo "<td>&nbsp;</td>";
      echo "</tr>";

      if ($a == $weekp) {
      $weekp = $weekp + 7;
      $week++;
      }

      $a++;
      }
      ?>
      </table></td>
      </tr>
      </table>

      [/kod]

      Comment

      • Pedda
        Forumvärd
        • 2000-06-28
        • 4880

        #4
        Missförstår nog dig angående vad du vill egentligen.
        Men för att få fram vilken dag i veckan det är så kan du köra:
        PHP Code:
        $dagar = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
        $dag = date("l");
        
        for ($d = 0; $d <= 7; $d++) {
            if ($dag == $dagar[$d]) {
                $dagiveckan = $d + 1;
            }
        }
        echo "dag i veckan: ".$dagiveckan . "<br><br>"; 
        
        Om jag var blygsam,skulle jag vara perfekt
        ><((((º>

        Comment

        • Troxy
          Medlem
          • 2004-03-14
          • 1508

          #5
          Eh...varför inte använda date()-funktionen till detta istället?!
          [kod]$dagiveckan = (int) date('N');[/kod]

          Comment

          • Pedda
            Forumvärd
            • 2000-06-28
            • 4880

            #6
            Originally posted by Troxy
            Eh...varför inte använda date()-funktionen till detta istället?!
            [kod]$dagiveckan = (int) date('N');[/kod]
            Japp, funkar bra... (Om man har PHP 5.1)
            Om jag var blygsam,skulle jag vara perfekt
            ><((((º>

            Comment

            • apaaa
              Medlem
              • 2005-11-15
              • 59

              #7
              $dagiveckan = (int) date('N'); den gick fint den

              Men om vill veta vilken vecka det var ex. 21 April, hur gör man det på ett smidigt sätt?
              Finns det något sätt man kan gå "back in time" med hjälp utav php's date funktion?

              Comment

              • Troxy
                Medlem
                • 2004-03-14
                • 1508

                #8
                Originally posted by Pedda
                Japp, funkar bra... (Om man har PHP 5.1)
                Det har man
                Annars bör man uppdatera servern eftersom 5.1 är stenålder och 4.x är utdött.

                Originally posted by apaaa
                Men om vill veta vilken vecka det var ex. 21 April, hur gör man det på ett smidigt sätt?
                Finns det något sätt man kan gå "back in time" med hjälp utav php's date funktion?
                Ja, date-funktionens andra argument är ett timestamp som används.
                Datumet 21/4 blir timestamp 1208732400.
                Sätt ihop allting såhär:
                [kod]$vecka = (int) date('W', 1208732400);[/kod]

                Comment

                • apaaa
                  Medlem
                  • 2005-11-15
                  • 59

                  #9
                  Förstod inte riktigt hur jag skulle göra om "Datumet 21/4 blir timestamp 1208732400" Men fann andra metoder på:


                  Tack för hjälpen!

                  Comment

                  • überfuzz
                    Medlem
                    • 2006-04-17
                    • 434

                    #10
                    Var får du datumen ifrån tex 21/4. Och vilken form har det?
                    Windows macht frei

                    Comment

                    • Troxy
                      Medlem
                      • 2004-03-14
                      • 1508

                      #11

                      Comment

                      Working...