Re: @Christoph - Datumsproblem - 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 Stefan Skalla (86 Beiträge) am Samstag, 12.Mai.2001, 00:56.
    Re: @Christoph - Datumsproblem

      Ja, da hab ich auch schon dran gedacht. Was ist aber, wenn durch Addition die 24h überschritten werden? Baseportal stört sich überhaupt nicht daran, als Uhrzeit 27:45 Uhr auszugeben... In diesem Fall muss also der Tag um 1 erhöht werden. Wenn ich den Tag um 1 erhöhe, kann es natürlich sein, dass dadurch der Monat nicht mehr stimmt. Baseportal hat auch mit dem 32. August kein Problem... Also muss auch der Monat um 1 erhöht werden. Dadurch wiederum könnte natürlich auch das Jahr beeinflusst werden, wenn sich das alles gerade am 31. Dezember abspielt.
      Okay, das lässt sich natürlich alles programmieren. Wenn alles nichts hilft, mache ich das auch so. Aber irgendwie erscheint mir das doch als extrem aufwendig - im Vergleich zu dem, was man erreichen möchte. Ich fände es sinnvoller, wenn man dazu einfach auf die Systemfunktion zurückgreifen könnte. Was hier fehlt, ist einfach eine Umkehrfunktion zu datum($ganzvieleSekunden). Dann könnte man aus der Zeichenkette $date wieder eine Zahl machen, mit der sich rechnen lässt.


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Stefan Skalla (86 Beiträge) am Freitag, 11.Mai.2001, 16:53.
    @Christoph - Datumsproblem

      Es hilft alles nichts, ich brauche einfach diese Funktionalität, zu einem in einer Variable $date gespeicherten Datum etwas dazu addieren zu können. In meinem Fall sind es Stunden, die dazu gerechnet werden sollen, es könnten aber bei anderen Anwendungen (Kalender etc.) auch Tage oder Jahre sein; funktionieren tut es für keinen der Fälle.
      Also die unten dargestellte Syntax out datum($date,"+$zeitzone:00") kann ja nicht funktionieren, da anscheinend der Teil nach dem Komma immer als Formatdefinition für die Datumsausgabe interpretiert wird. out datum($date+$zeitzone) funktioniert auch nicht, egal in welche Form ich den Inhalt der Variable $zeitzone bringe - eigentlich habe ich alle Varianten durchprobiert. Wahrscheinlich kann sowas überhaupt nicht klappen, da ja alle Datumsangaben als Text abgelegt sind; da macht das + Zeichen wohl keinen Sinn.
      Wie macht man es also? Ich hab keine Ahnung. Egal, wie ich versuche, die beiden Teile zu verknüpfen, es kommt nur Nonsens dabei heraus.
      Gibt es denn eine Möglichkeit, ein Datum wieder in die Zahl der Sekunden seit 1.1.1970 zurückzurechnen (möglichst ohne riesigen Formelaufwand)? Die Frage gab's hier schon mal, eine Lösung aber nicht. Sowas wie "timelocal" wäre toll...
      Mag sein, dass das gesamte Problem als nebensächlich erscheint - aber sobal man sich mit seiner Website in etwas internationalere Gefilde bewegen möchte (was ich gerne erreichen würde), bekommt es Bedeutung. Ein User in USA würde sich wohl wundern, wenn er z.B. abends etwas in meine Datenbank schreibt und feststellt, dass das Datum vom nächsten Tag erscheint. Beim japanischen User wäre der Tag schon 7 Stunden alt und trotzdem erscheinen seine Postings noch mit dem Datum von gestern... (abgespeichert wird's ja auch so, aber wenigstens den registrierten Usern will ich's richtig ANZEIGEN). Kurz gesagt: HELP, PLEASE!

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 11.Mai.2001, 17:39.
    Re: @Christoph - Datumsproblem

      Ich würde da vorschlagen das Datum auseinander zu nehmen wie es Ruben gemacht hat.

      $datumsrest=datum($date,"Tag.Monat.Jahr");
      $datumstunde=datum($date,"Stunde");
      $datumminute=datum($date,"Minute");
      

      $datumstunde=$datumstunde+$zeitzone;

      out "$datumrest $datumstunde:$datumminute";
      

      Sander

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Samstag, 12.Mai.2001, 00:56.
    Re: @Christoph - Datumsproblem

      Ja, da hab ich auch schon dran gedacht. Was ist aber, wenn durch Addition die 24h überschritten werden? Baseportal stört sich überhaupt nicht daran, als Uhrzeit 27:45 Uhr auszugeben... In diesem Fall muss also der Tag um 1 erhöht werden. Wenn ich den Tag um 1 erhöhe, kann es natürlich sein, dass dadurch der Monat nicht mehr stimmt. Baseportal hat auch mit dem 32. August kein Problem... Also muss auch der Monat um 1 erhöht werden. Dadurch wiederum könnte natürlich auch das Jahr beeinflusst werden, wenn sich das alles gerade am 31. Dezember abspielt.
      Okay, das lässt sich natürlich alles programmieren. Wenn alles nichts hilft, mache ich das auch so. Aber irgendwie erscheint mir das doch als extrem aufwendig - im Vergleich zu dem, was man erreichen möchte. Ich fände es sinnvoller, wenn man dazu einfach auf die Systemfunktion zurückgreifen könnte. Was hier fehlt, ist einfach eine Umkehrfunktion zu datum($ganzvieleSekunden). Dann könnte man aus der Zeichenkette $date wieder eine Zahl machen, mit der sich rechnen lässt.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 12.Mai.2001, 01:04.
    Re: @Christoph - Datumsproblem

      Frag mal bei fb nach, er hat schon mal die sekunden rausgelöst - das heißt einen fertigen Workaround

      Sander

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Samstag, 12.Mai.2001, 23:50.
    Re: @Christoph@fb - Datumsproblem

      Hi fb! Das hast Du jetzt davon! Sander hat Dich verraten. Hast Du wirklich eine Routine auf Lager, die mir die Sekunden ab 1.1.1970 errechnet? Das wäre toll. Dann muss ich das Rad nicht noch einmal neu erfinden... Kannst Du mir helfen?

      Gruß,
      Stefan

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 12.Mai.2001, 23:56.
    Re: @Christoph@fb - Datumsproblem: $date+Tage,Stunden:Minuten.Sekunden möglich!!

      Nee, nee, so gehts ja nicht, ich bau hier mühsam die von Dir gewünschte Funktion ein und dann willst Du mit einer Funktion von fb abtrünnig werden! ts, ts, ts... ;-)

      Also, es geht jetzt auf jeden Fall folgendes:

      $neu=datum("$alt+10:00", "lang");
      

      Rechnet zu $alt 10 Stunden dazu... $alt muss im internen Format vorliegen, was es automatisch tut, wenn Du es per get/get_next geholt hast... In einem "loop" musst Du $_raw{Feldname} verwenden, z.b. so:

      <loop code=perl>
      out "Datum=$Datum + 5 Tage, 3 Stunden, 12 Minuten und 23 Sekunden --> ",datum("$_raw{Datum}+5,03:12.12", "lang"),"<br>";
      </loop>
      

      Klar? Hoffe doch ;-)

     Antworten

    Beitrag von fb (406 Beiträge) am Sonntag, 13.Mai.2001, 02:31.
    Re: @Christoph@fb - Datumsproblem: $date+Tage,Stunden:Minuten.Sekunden möglich!!

      Rutine?

      Ja hatte ich mal. Hab aber gerade die ganze Platte bei mir durchsucht- hab ich nicht mer.

      Danke Christoph brauch jetzt nicht mer zu rekonstruieren :-)

      War ja damals wegen der Hilfe und das Prob haben wir ja dann auch anders gelöst.

      Na ich hoffe jetzt werden mal wenigen Probs zum Datum hier stehen :-) Aber vielleicht dann doch irgentwann mal ausgaben als Epochen-Sekunden?

      Schlaft alle gut, bin ja mal wieder der letzte.

      FB

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Sonntag, 13.Mai.2001, 07:01.
    Re: @Christoph@fb - Datumsproblem: $date+Tage,Stunden:Minuten.Sekunden möglich!!

      Ich bin begeistert. Ja, ja, ich weiß: "Unmögliches machst Du sofort, Wunder dauern etwas länger..."
      Nochmal vielen Dank für die Mühe und die schnelle Hilfe.
      Schönes Wochenende noch,
      Ciao,
      Stefan

     Antworten

    Beitrag von Ruben (403 Beiträge) am Sonntag, 13.Mai.2001, 21:27.
    Re: @Christoph@fb - Datumsproblem: $date+Tage,Stunden:Minuten.Sekunden möglich!!

      Hallo,
      und warum progge ich tagelang, und du machst das mit einem Wisch *fg* ;-)
      Schön,daß es jetzt so einfach mit Datumsdifferenzen geht. Das macht dann einen Großteil meines schönen include-Templates i_pl_wochrech unnötig - ein paar interessante Features sind aber doch noch vorhanden. So wird jetzt der Tag des Jahres errechnet und die aktuelle Kalenderwoche (sogar Schaltjahr wird beachtet ;-), mach das mal nächste Woche so, daß alles unnötige rauskommt und dann eine auf den Stand von bp angepaßte Version in der bib steht.

      Nochmal: sehr schön, die eingebaute Datums-Differenzfunktion - macht vieles einfacher.

      Geht das auch in Abfragen so einfach - das wäre dann ja echt toll (haben wohl genug Leute unterdessen gelöchert mit dem Datum? *gg*).
      Cu
      Ruben

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Montag, 14.Mai.2001, 09:12.
    Re: @Christoph@fb - Datumsproblem: $date+Tage,...möglich!! ZU FRÜH GEFREUT!

      Hi Christoph,

      die Funktion hat noch einen Schönheitsfehler: Zwar funktioniert jetzt die Addition, aber die Subtraktion geht nicht. Sowohl datum("$date-$zeitzone:00") als auch datum("$date+$zeitzone:00") mit einem negativen Wert für $zeitzone liefern als Ergebnis immer nur $date. Lässt sich das noch einbauen?

      Gruß,
      Stefan

     Antworten

    Beitrag von Ruben (403 Beiträge) am Montag, 14.Mai.2001, 09:58.
    Re: @Christoph@fb - Datumsproblem: $date+Tage,...möglich!! ZU FRÜH GEFREUT!

      Hi,
      bei mir funzt es, hab grad mal getestet, die Zuweisung
      $minus2 = datum("jeztz-2:00", "Tag. Stunde:Minute") haut einwandfrei hin und rechnet genau 2 Stunden zurück.
      
      CU
      Ruben

     Antworten

    Beitrag von Stefan Skalla (86 Beiträge) am Montag, 14.Mai.2001, 10:35.
    Re: @Christoph@fb - Datumsproblem: $date+Tage,...möglich!! ZU FRÜH GEFREUT!

      Ja, stimmt: Wenn man "jetzt" verwendet, klappt's. Wenn ich ein anderes $date anstelle von "jetzt" nehme, funktioniert's nur bei positiven Werten.

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 14.Mai.2001, 11:49.
    Re: Datumsproblem: $date+Tage... ZU FRÜH GEFREUT!

      Naja, wär ja merkwürdig, wenn alles auf Anhieb geklappt hätte ;-)

      Schau ich mir gleich mal an...

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 14.Mai.2001, 12:19.
    Re: $date-Tage,...geht jetzt... +/- in Abfragen auch...

      äh, steht eigentlich schon alles im titel... ;-)

      Ruben: Hab das mit dem +/- grade mal in Abfragen getestet, das ging von alleine ;-) also sowas:

      <loop Datum<5.7.2000+3>
      
      ...
      </loop>

      holt alles < 8.7.2000...

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 14.Mai.2001, 11:48.
    Re: @Christoph@fb - Datumsproblem: $date+Tage,Stunden:Minuten.Sekunden möglich!!

      Gut, jetzt kann ichs ja zugeben: Die Datumsroutine ist schon von Anfang an mit allem komplett - ich habe mir nur gedacht, wenn ich da ein paar Sachen weglasse, ist man dazu gezwungen, das selbst zu programmieren und nur so lernt man ja was... ;-))

      Nö, also das mit dem Datum hat sich während der Arbeit als extrem umfangreich rausgestellt, mir war das vorher garnicht bewusst. Ich denke es wird noch ein paar bp-Versionen brauchen, bis da wirklich alles drin ist, was man braucht... (Jaja, wann stellen wir endlich auf Sternzeit um oder wie wärs mit der grossen Zeitreform: 1 Minute=100 Sekunden, 1 Stunde=100 Minuten, 1 Tag=10 Stunden, JEDER Monat=30 Tage und 1 Jahr=300 Tage - oder so ähnlich... (Von mir aus auch alles auf der Basis 10, also 1 Minute=10 Sekunden, etc.) Dann müsste man nur noch die Dauer einer Sekunde entsprechend anpassen, dass es mit unserem Sonnenjahr aufgeht...)

      Äh, so, genug geträumt... Bis es soweit ist (also mit der Zeitreform), sollten wir vielleicht mal alles sammeln, was man in Bezug auf Datum benötigt (aktuelle Woche, von nächstem bis übernächstem Monat etc.)- Du hast da bestimmt den besten Überblick, Ruben... ;-)

      In Abfragen: Jups, macht Sinn, mal sehen wie gross der Aufwand ist...

     Antworten

    Beitrag von fb (406 Beiträge) am Montag, 14.Mai.2001, 14:24.
    Re: @Christoph@fb - Datumsproblem: $date+Tage,Stunden:Minuten.Sekunden möglich!!

      Tja gerne Proggen :-)

      Hab mir da schon den Kopf zerbrochen und dennoch, das aufwendigste ist es Die Ausgaben von Datum in BP wieder in die Epoche_Sekunden umzurechnen, ohne die entsprechenden Module (localtime).

      Einmal mit dem Datum beschäftigt immer das gleiche, obs nun schaltjahre oder Monatstage sind. Ich glaub jeder der schon früher nen bischen Programmiert hat ist irgentwann auf das Datum und Zeitformat gestossen. Obs nun Atari, Amiga, oder der C64, immer wird mit einer datumszahl gerechnet.
      Ich weis nicht wieviele leute sich da schon den Kopf heissgedacht haben, bzw wie oft dieses Rad der Zeit schon neu erfunden wurde :-)

      Deshalb war ja vor nicht allzulanger Zeit mein Wunsch mir irgentein Datum/Zeit auch als Epochen Sekunden ausgeben zu lassen bzw aus der datenbank auch dieses Format holen zu können. Zum Rechnen braucht man das eben :-)
      Obs nun Datum > als zweites Datum oder Zeiträume erkenne ist etc.
      Es geht ja auch in BP das man eine Epochen Sekunden Zahl als Formatiertes datum ausgibt also:

      $Geburtstag= datum("96176750","Tag0.Monat0.Jahr Stunde:Minute")
      
      "Die Zahl findest Du auch im Kochbuch :-)".
      Warum nicht auch anders rum?
      Wie ist es denn mit den Modulen,
      use Time::local ??
      use Date::Calc ??
      sind die in BP nutzbar?

      Na aber scheinbar gehts ja vorrann und Du stellst da ja auch schon alles mögliche zur verfügung :-)

      FB

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 14.Mai.2001, 23:48.
    Re: @Christoph@fb - Datumsproblem: $date+Tage,Stunden:Minuten.Sekunden möglich!!

      Als ich mit dem Datumsfeld anfing hab ich mir lange überlegt, wie ich es am sinnvollsten intern speichere und natürlich war "Sekunden seit 1.1.1970" die erste Idee - bis mir dann irgendwann auffiel, dass man damit ja noch nichtmal Geburtsdaten speichern kann (zumindest die der über 30-jährigen nicht ;-) ).

      Deshalb also das interne Format 2000.01.01,12:23,47 - damit ist einfach alles möglich, auch historische Daten... Schien mir sinnvoller...

      Klar, kann man mit Sekunden gut rechnen, aber das hat Grenzen, z.B. wenn man + 1 Monat machen will -> Wieviel Sekunden hat ein Monat? Kommt natürlich auf den Monat an und da wirds dann wieder unbequem... Deshalb sollte baseportal einfach alles was mit Datum zu tun hat so bequem wie möglich bereitstellen und es ist ja auch schon weit gediegen... Irgendwann brauchts die Sekunden seit 1.1.970 dann einfach nicht mehr - denn dafür gibts im realen Leben einfach keine Notwendigtkeit ;-)

     Antworten

    Beitrag von fb (406 Beiträge) am Dienstag, 15.Mai.2001, 01:36.
    Re: @Christoph@fb - Datumsproblem:Noch ein Traum :-)

      Hallo Christoph,

      mal zum sammeln, ein absoluter Traum währe es wenn sowas geht:
      $Zeit=datum("$Ende_datum-$Start_datum")
      und dann in $Zeit die diverenz in Monaten,tagen,jahren,stunden,minuten und secunden stehen.
      
      Was aber wenn zwischen Start und Ende nur 5 minuten vergangen sind???

      Eigentlich ist Deine Idee mit dem Internen Format ja gut, Datum und Zeit durch , getrennt mmm

      Hab jetzt zwei Tage einige stunden damit verbracht rumzuprobieren mit Monatstagen und schaltjahren usw. ist eben wirklich ein Komplexes Tema :-(
      Das vergleichen ist dabei ja ein leichtes aber Zeiträume zu ermitteln , Tja da hörts dann auch schon auf :-(
      Hatte eigentlich vor ne art sub zu schreiben die eben sowas kann, ist aber nur ne sub geworden die ne Datumszahl generiert mit der man vergleichen und rechnen kann. Problem ist immer das wieder umformen in ein datum oder eben in eine Differenz die dann kein Datum (wie bei Dir mit - ) sondern Zeitraum rausschmeisst mmm

      Ich weis nicht ob ich hier und da nen Ansatz habe der Dir weiterhelfen könnte.

      Steht bei schick (Termine) ist aber inzwischen wohl ein wirrwar aber wer weiss.

      FB

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Dienstag, 15.Mai.2001, 15:09.
    Re: @Christoph@fb - Datumsproblem:Noch ein Traum :-)

      Äh, na gut, dann erfüllen wir mal Deinen Traum ;-)

      Soll heissen: Naja, zumindest mit Tagen,Stunden,Minuten und Sekunden sollte das gehen, was Du Dir erträumst ;-)

     Antworten


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