Re: Datum in time umwandeln? - wozu? - 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 Christoph Bergmann (8110 Beiträge) am Dienstag, 6.Februar.2001, 13:12.
    Re: Datum in time umwandeln? - wozu?

      Wozu brauchst Du das denn? Würde mich interessieren ;-)


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von fb (406 Beiträge) am Dienstag, 6.Februar.2001, 02:17.
    Datum in time umwandeln?


      Hallo weis jemand ob, und wenn ja wie, ich ein Formatiertes Datum in time() umwandeln kann ?

      Sprich will z.B.
      $datum   (inhalt 01.02.2001)
      
      als secunden ausgeben (normalerweise sind es die secunden ab einem bestimmten Datum 1.1.1970)

      Hoffe das jemand versteht was ich meine :-)

      FB

     Antworten

    Beitrag von Stephan Hix (106 Beiträge) am Dienstag, 6.Februar.2001, 08:49.
    Re: Datum in time umwandeln?

      Hi fb!

      Ich habe keine Ahnung ob das klappt, aber versuch mal sowas:

      # Datum zerlegen in Tag, Monat und Jahr
      @datumsplit = split (/./,$datum); 
      

      #Vorbereitung der Variablen
      $seconds,$minutes,$hours=0;
      $day=$datumsplit[0];
      $month=$datumsplit[1]-1;
      $year=$datumsplit[2]-1900;
      

      # Umwandlung in Epochen-Sekunden
      use Time::Local;
      $time = timegm($seconds, $minutes, $hours, $day, $month, $year);
      


      Ich habe das auch nur aus dem "Perl Kochbuch" rausgesucht. Bisher nix Test und nix Erfahrung.

      Gruß
      Stephan

     Antworten

    Beitrag von Stephan Hix (106 Beiträge) am Dienstag, 6.Februar.2001, 09:47.
    Geht so nicht...

      Ich habe das mal getestet:

      $datum="06.02.2001";
      # Datum zerlegen in Tag, Monat und Jahr
      @datumsplit = split (/\./,$datum); 
      #Vorbereitung der Variablen
      $seconds=0;
      $minutes=0;
      $hours=0;
      out $hours.$minutes.$seconds."Zeit <br>";
      $day=$datumsplit[0];
      out $day ."<br>"; 
      $month=$datumsplit[1];
      out $month ."<br>";
      $year=$datumsplit[2];
      out $year ."<br>";
      # Umwandlung in Epochen-Sekunden
      
      use Time::Local;
      $time=timegm($seconds,$minutes,$hours,$day,$month-1,$year-1900);
      out $time;
      

      Wenn Du die letzten Zeilen in Kommentare umwandelst, siehst Du, dass der use-Aufruf nicht funktioniert.
      Das scheint aus BP heraus nicht zu gehen, sorry.

      Gruß
      Stephan

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 6.Februar.2001, 13:12.
    Re: Datum in time umwandeln? - wozu?

      Wozu brauchst Du das denn? Würde mich interessieren ;-)

     Antworten

    Beitrag von fb (406 Beiträge) am Dienstag, 6.Februar.2001, 18:16.
    Re: Datum in time umwandeln? - wozu? @Christoph

      Hallo Christoph,

      Sander hat das Problem gestern anders gelöst. Trotzdem würde ich gerne wissen ob es geht. Eigentlich geht es um einen vergleich von zwei Datums(zeit) Werten. Der eine wird aus einer DB ausgelesen und wird mit dem Aktuellen Datum - 10Tage verglichen.
      Das datum - 10 Tage macht aber manchmal Probs. Z.B. Jahreswechsel. Um den vergleich zu realisieren hat Sander beide datumswerte convertiert in Strings ohne Punkte, dann verglichen < Klappt auch.
      Das bedarf aber ein Paar Zeilen code.

      Um das abzukürzen (und auch Jahreswechsel prob), war meine Idee beide Werte als sec zu vergleichen z.B.:

      if("$date" < time()-864000)
      

      wenn $date als sec gespeichert ist funzt das. So brauche ich keine einzige convertierung des Formates.

      Würde natürlich alles gehen wenn $date mit Put von uns gespeichert würde als:
      $date=time();
      

      Da "date" in der datenbank als Datumsfeld (bei Änderung) mit vorgegebenem Ein- und Ausgabeformat steht geht das nicht.(vorteil wir müssen das Datum bei Änderungen nicht mit dem Datensatzt abspeichern, macht ja BP)
      $date wird eigentlich nicht zur ausgabe benötigt, daher ist das Format unwichtig.
      

      So ich hoffe Du(Ihr) verstehst worum es geht.

      Gibt es vielleicht die möglichkeit in einem Datumsfeld als ein- und ausgabeformat sec anzugeben?

      Vielleicht bin ich ja auch etwas umständlich :-)
      FB

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 6.Februar.2001, 19:09.
    Re: Datum in time umwandeln? - wozu? @Christoph

      Ah, ok, verstehe... Nein, nicht Du bist umständlich sondern was sich da unsere Vorfahren bzgl. Datum ausgedacht haben ist umständlich... sehr umständlich...

      Wobei mir so ist, also ob es für Dein Problem eine Lösung gibt... Wie wärs mit:

      if($date<datum(-10, "intern")...
      

      ? Hoffe es klappt, habs nicht getestet...

      Noch ne Frage: Wieso macht Ihr nicht gleich die Abfrage so:

      get "Datum<-10";
      

      ?

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 6.Februar.2001, 19:10.
    Re: Datum in time umwandeln? - wozu? nachtrag: "lt"

      Datum = Texte nicht Zahlen ;-)

      Muss deshalb

      if($date lt datum(-10, "intern")...
      

      heissen...

     Antworten

    Beitrag von Christoph (49 Beiträge) am Dienstag, 6.Februar.2001, 19:11.
    Re: Datum in time umwandeln? - wozu? nachtrag: ) fehlt

      jetzt reichts aber, klammer zu fehlt, so is richtig:

      if($date lt datum(-10, "intern"))...
      

     Antworten

    Beitrag von fb (406 Beiträge) am Dienstag, 6.Februar.2001, 19:53.
    Re: Datum in time umwandeln? - antwort @Christoph

      Auch wenns Dir reicht :-)

      >Noch ne Frage: Wieso macht Ihr nicht gleich die >Abfrage so:
      

      >get "Datum<-10";
       
      währe ne zusätliche abrage.

      Der Vergleich findet so statt:
      get "$feld==irgentwas","db";
      while(get_next("db"))
      {
      out "gib hier für alle was aus";
      if($date ne "") #Also steht da überhaupt ein datum?
      { 
      out "mache dieses für alle mit datum";
      if($date < $old)
      {
      out "gib das aus für alle mit Älterem datum";
      }
      out "mach das auch noch für alle mit datum";
      }
      }
      

      in $old steht heutiges datum - 10Tage drinn

      Ansonsten wir haben ja das problem jetzt anders gelöst. Ist halt nur für ne einfachere handhabung. Eventuell auch für andere mit ähnlichen Probs.

      Fänd ich einfach Toll wenn man über eine einzige zeile (if) das prob lösen könnte.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 6.Februar.2001, 21:04.
    Re: Datum in time umwandeln? - antwort @Christoph - ja aber das isses doch


      Das ist die einzeilige ohne-weitere-Abfrage-Lösung:

      if($date lt datum(-10, "intern")) ...
      

      hier der gesamte code:


      get "$feld==irgentwas","db";
      while(get_next("db"))
      {
        out "gib hier für alle was aus";
        if($date ne "") #Also steht da überhaupt ein datum?
        { 
          out "mache dieses für alle mit datum";
          if($date lt datum(-10,"intern"))
          {
            out "gib das aus für alle mit Älterem datum";
          }
          out "mach das auch noch für alle mit datum";
        }
      }
      

      das isses, mehr nich...

     Antworten


     
 Liste der Einträge von 65400 bis 65550: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.11s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!