Re: Re: Feld nur in bestimmten Zeitfenster anzeigen - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Sander (8133 Beiträge) am Samstag, 15.November.2014, 10:36.
    Re: Re: Feld nur in bestimmten Zeitfenster anzeigen

      da sind ein paar Formate vermischt. Generell geht so ein Vergleich nur mit Jahr.Monat0.Tag0, da es sich um einen Stringvergleich handelt

      ich würds so machen
      $von = datum("jetzt-1","Jahr.Monat0.Tag0"); #gestern
      $bis = datum("jetzt+1","Jahr.Monat0.Tag0"); #morgen
      $tag = datum($Datum,"Jahr.Monat0.Tag0"); 
      
       if($tag ge $von && $tag le $bis){ # tag größer oder gleich gestern und kleiner oder gleich morgen?     out "$Aufgabe";

      } else {

          out "$Hinweis";
      }
      


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Bernd (213 Beiträge) am Freitag, 14.November.2014, 16:22.
    Feld nur in bestimmten Zeitfenster anzeigen

      Hallo,

      ich habe in meiner DB ein Feld Datum, ein Feld Aufgabe und ein Feld Hinweis.
      Das Feld Aufgabe soll nur 1 Tag vor bis 1 Tag nach dem Eintrag im Feld Datum angezeigt werden, ansonsten der Inhalt von Feld Hinweis.

      Wonach sollte ich da am besten im Forum suchen?

      Danke
      Bernd

     Antworten

    Beitrag von markus (1013 Beiträge) am Freitag, 14.November.2014, 17:08.
    Re: Feld nur in bestimmten Zeitfenster anzeigen

      So in der Art sollte es gehen:


      $jetztdatum = datum("jetzt-1");
      $aktivdatum = datum("$Datum-1","Tag.Monat.Jahr2");
      $tag = datum("$Datum","Tag.Monat.Jahr2");
      
       if($jetztdatum lt $tag && $jetztdatum gt $aktivdatum)
      {
          out "$Aufgabe";
      

      } else {

          out "$Hinweis";
      }
      

      VG
      Markus

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 15.November.2014, 10:36.
    Re: Re: Feld nur in bestimmten Zeitfenster anzeigen

      da sind ein paar Formate vermischt. Generell geht so ein Vergleich nur mit Jahr.Monat0.Tag0, da es sich um einen Stringvergleich handelt

      ich würds so machen
      $von = datum("jetzt-1","Jahr.Monat0.Tag0"); #gestern
      $bis = datum("jetzt+1","Jahr.Monat0.Tag0"); #morgen
      $tag = datum($Datum,"Jahr.Monat0.Tag0"); 
      
       if($tag ge $von && $tag le $bis){ # tag größer oder gleich gestern und kleiner oder gleich morgen?     out "$Aufgabe";

      } else {

          out "$Hinweis";
      }
      

     Antworten

    Beitrag von Bernd (213 Beiträge) am Samstag, 15.November.2014, 12:27.
    Re: Re: Re: Feld nur in bestimmten Zeitfenster anzeigen

      Hallo Sander,

      vielen Dank, klappt super, habe jetzt gemerkt, dass ich es gerne
      noch ein wenig optimieren würde, in etwa so:

      Was heute ist, Feld "Aufgabe" anzeigen,
      was gestern und Vergangenheit liegt Info: "zu spät"
      was morgen oder in Zukunft: Feld "Hinweis" anzeigen.

      Ich hab das mit dem lt und gt noch nicht so verstanden.
      Danke
      Bernd

     Antworten

    Beitrag von Bernd (213 Beiträge) am Samstag, 15.November.2014, 16:55.
    Re: Re: Re: Re: Feld nur in bestimmten Zeitfenster anzeigen

      Ich hab da jetzt einmal ein bischen rumprobiert und die Sache was zukünftig ist und schon gelaufen ist, klappt.
      Aber wenn es am selben Tag ist, wird nix angezeigt, aber eq heißt doch sowas wie == ?


      $jetztdatum = datum("jetzt","Tag0.Monat0.Jahr"); #heute
      $von = datum("jetzt-1","Tag0.Monat0.Jahr"); #gestern
      $bis = datum("jetzt+1","Tag0.Monat0.Jahr"); #morgen
      $tag = datum($tag,"Tag0.Monat0.Jahr"); 
      
       if($tag gt $jetztdatum){
      out "$Hinweis";
      }
       if($tag lt $von){
      out "zu spät";
      }
       if($tag eq $jetztdatum){
      out "$Aufgabe";
      }
      

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 15.November.2014, 20:06.
    Re: Re: Re: Re: Re: Feld nur in bestimmten Zeitfenster anzeigen

      wie schon erst geschrieben, klappen Datumvergleiche nur mit "Jahr.Monat0.Tag0"

      wenn du Tag0.Monat0.Jahr machst, vergleicht der zb

      14.02.2015 mit 01.02.2016 -> Jahr 2016 ist größer als 2015, aber Tag 01 ist kleiner als Tag 14 - somit kommt vom Tag schon das falsche raus

      2015.02.15 ist immer kleiner als 2016.02.01

      verstehst?

     Antworten

    Beitrag von Bernd (213 Beiträge) am Samstag, 15.November.2014, 21:30.
    Re: Re: Re: Re: Re: Re: Feld nur in bestimmten Zeitfenster anzeigen

      OK, nachvollziehbar, nur wenn ich die Datumsfelder so anpasse, kommt bei mir jetzt überall die Ausgabe "zu spät" :-(


      $jetztdatum = datum("jetzt","Jahr.Monat0.Tag0"); #heute
      $von = datum("jetzt-1","Jahr.Monat0.Tag0"); #gestern
      $bis = datum("jetzt+1","Jahr.Monat0.Tag0"); #morgen
      $tag = datum($tag,"Jahr.Monat0.Tag0"); 
      
       if($tag gt $jetztdatum){
      out "$Hinweis";
      }
       if($tag lt $von){
      out "zu spät";
      }
       if($tag eq $jetztdatum){
      out "$Aufgabe";
      }
      

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 15.November.2014, 22:53.
    Re: Re: Re: Re: Re: Re: Re: Feld nur in bestimmten Zeitfenster anzeigen

      dann geht ich davon aus, das dein Feld nicht $tag heißt, oder $Aufgabe bzw $Hinweis nicht gefüllt ist... Ich hab es gerade probiert, mit festen Werten geht es

      <perl>
      $Datum="15.11.2014";
      
       $jetztdatum = datum("jetzt","Jahr.Monat0.Tag0"); #heute
      $von = datum("jetzt-1","Jahr.Monat0.Tag0"); #gestern
      $bis = datum("jetzt+1","Jahr.Monat0.Tag0"); #morgen
      $tag = datum($Datum,"Jahr.Monat0.Tag0"); 
      
       if($tag gt $jetztdatum){
      out "Hinweis";
      }
       if($tag lt $von){
      out "zu spät";
      }
       if($tag eq $jetztdatum){
      out "Aufgabe";
      }
      </perl>
      

     Antworten

    Beitrag von Bernd (213 Beiträge) am Samstag, 15.November.2014, 23:54.
    Re: Re: Re: Re: Re: Re: Re: Re: Feld nur in bestimmten Zeitfenster anzeigen

      Ich habe das mal direkt so übernommen, bekomme jetzt überall "zu spät" angezeigt, auch wenn es das gerade ist :-)


      http://baseportal.de/cgi-bin/baseportal.pl?htx=/bernd77/test/start

      ---------------------------------------------------
      <loop db=daten code=perl>
      $jetztdatum = datum("jetzt","Jahr.Monat0.Tag0"); #heute
      $von = datum("jetzt-1","Jahr.Monat0.Tag0"); #gestern
      $bis = datum("jetzt+1","Jahr.Monat0.Tag0"); #morgen
      $tag = datum($Datum,"Jahr.Monat0.Tag0"); 
      

      out<<EOF;

      <h2>$tag | $Titel</h2>
      <hr>
      

      EOF
       $jetztdatum = datum("jetzt","Jahr.Monat0.Tag0"); #heute
      $von = datum("jetzt-1","Jahr.Monat0.Tag0"); #gestern
      $bis = datum("jetzt+1","Jahr.Monat0.Tag0"); #morgen
      $tag = datum($Datum,"Jahr.Monat0.Tag0"); 
      
       if($tag gt $jetztdatum){
      out "Hinweis";
      }
       if($tag lt $von){
      out "zu spät";
      }
       if($tag eq $jetztdatum){
      out "Aufgabe";
      }
      out <<EOF;
      EOF
      </loop>
      
      ---------------------------------------------------

     Antworten

    Beitrag von Sander (8133 Beiträge) am Sonntag, 16.November.2014, 00:53.
    Re: Re: Re: Re: Re: Re: Re: Re: Re: Feld nur in bestimmten Zeitfenster anzeigen

      aja, bei loop musst du das Datumfeld im raw-format nehmen. das wurde vorher schon zur Ausgabe gewandelt

      $tag = datum($_raw{Datum},"Jahr.Monat0.Tag0");
      

     Antworten


     
 Liste der Einträge von 2100 bis 2250:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!