Ankündigung

Einklappen
Keine Ankündigung bisher.

date("l H:i:s");

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • date("l H:i:s");

    Hi. Ich muss für meine Seite einen Script schreiben, wo ich (relative??) Tages- und Zeitangaben vergleichen muß. Diese sind identisch mit einem Wochenunterichtsplan von Schulen.
    Z.B. "Freitag 12:30:00".
    Ich habe das mal so getestet, und es funktioniert.
    PHP-Code:
    <?php
    $date1    
    =    date("l H:i:s");  // Ergibt z.B. Friday 8:15:05
    sleep(3);  
    $date2    =    date("l H:i:s");

    if(
    $date $date2){
        echo 
    $date1 ." ist kleiner als "$date2;
        }else{
        echo 
    "nicht kleiner";
        }
    ?>
    Ist das Ergebnis zufällig richtig, oder stimmt das Ergebnis tatsächlich, weil PHP die Variable $date1 und $date2 als date() Ausgabe erkennt und dann vergleicht?

    Ansonsten habe ich auf php.net gelesen, dass die Woche laut date() mit Sunday beginnt, was zu falschen Ergebnissen führen kann. Denn Sunday soll grösser als Monday sein.

    Habt ihr vielleicht ein paar Tips, wie ich diese Sache richtig angehen kann? Bin für jeden Tipp dankbar.

  • #2
    In $date1 und $date2 stehen Strings. Wenn du diese vergleichst hat das nichts damit zutun das du ein Datum vergleichst. Dafür solltest du dich mal mit Timestamps auseinander setzen. Diese sind dafür geeignet einfache Operationen damit durchzuführen.

    Kommentar


    • #3
      Hi Florian. Ich weiss, dass man Timestamps vergleichen kann. Ich habe jedoch ein Verständnisproblem, weil mein Angaben ja relativ sind. Es ist ja kein Datum in dem Sinne. Ich denke nicht, dass unix_timestamp mir da weiterhilft...

      Kommentar


      • #4
        Du kannst ein Datum ja in einen Timestamp umwandeln und dann damit arbeiten. Timestamps sind nicht relativ sondern absolute Angaben und definieren exakt ein Datum.

        Kommentar


        • #5
          Das ist ja doch etwas schwieriger...
          Wie würdet ihr eigentlich eine mysqlbasierten Wochenstundenplan umsetzen, so dass die Einträge pro Wochentag chronologisch ausgegeben werden können?
          Ist das überhaupt mit den Time- oder Datefunktionen von PHP oder MYSQL machbar?

          Kommentar


          • #6
            Wurde doch gerade gesagt.. Entscheidened ist, immer das flexibelste Format zu benutzen.
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #7
              Danke für den Tip mit dem Timestamp.
              Ich habe das so gelöst.

              PHP-Code:
              <?php
              $test1    
              compressuTime("Sunday 16:15:30"); // like: DATE_FORMAT(timestamp,'%W %H:%i:%s')
              $test2    compressuTime("Monday 19:30:00");

              if(
              $test1 $test2){
                  echo 
              "<BR>'".$test2."' ist grösser als '".$test1."'<BR>";}    
              if(
              $test1 $test2){
                  echo 
              "<BR>'".$test1."' ist grösser als '.".$test2."'<BR>";}


              // Deconverting 
              echo decompressuTime($test1"en");


              // ----------------------------------------------------------------------------------------------
              //  ======>  Convert timeformat("Monday 15:14:15") to timeformat ("")  <======
              function compressuTime($date){   
                  
              $pSplit    =    split(" ",$date);
                  
              $pTime  =   str_replace(":",""$pSplit[1]);
                  
              $days   =   array("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");
                  
              $key    =   sprintf("%02d",array_search($pSplit[0], $days)+1);
                  return 
              $key.$pTime;
                  }



              //  ======>  Convert timeformat("01151415") to timeformat ("Monday 15:14:15")  <======
              function decompressuTime($code$language){ 
                 
              $uCode    =    str_split($code,2);
                  
              // Catch Errors and return false!
                  
              if(  $uCode[0]>=8  ||  $uCode[1]>=24 || $uCode[2]>=60  ||  $uCode[3]>=60  ){
                      return 
              false;}    
                  if(
              substr($code[0], ) == 0) {
                      
              $uCode[0]    =     substr($uCode[0],-1) - 1;}  // ...wegen Arrayzuordnung
                      
                   
              if($language=="en"){
                      
              $days   =   array("Monday","Tuesday","Wednesday","Thursday",
                                        
              "Friday","Saturday","Sunday");}
                  if(
              $language=="de"){
                      
              $days   =   array("Montag","Dienstag","Mittwoch","Donnerstag",
                                        
              "Freitag","Samstag","Sonntag");}  
                  
                  
              $day    =   $days[$uCode[0]];
                  
              $Time    =    $uCode[1] .":"$uCode[2] .":".  $uCode[3];
                  return 
              $day ." "$Time;
                  }   
              ?>
              War das mit Timestamp so gemeint, oder schieße ich mit diesen beiden Funktionen mit Kanonen auf Spatzen?

              Kommentar


              • #8
                Nein wir reden hier von UNIX Timestamp, das was dir die Funktion time() zurück gibt!

                Kommentar

                Lädt...
                X