Ankündigung

Einklappen
Keine Ankündigung bisher.

Datum aus Kalenderpligin

Einklappen
X

Datum aus Kalenderpligin

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

  • Datum aus Kalenderpligin

    Hallo,

    aus dem Kalenderplugin übernehme ich in eine Erfassungsmaske das von-Datum und das bis-Datum des markierten Bereiches. Das passiert mittels:
    Code:
    customdefaultiso - $!Request.get('rq_DateFrom')
    bzw.
    Code:
    customdefaultiso - $!Request.get('rq_DateTo')
    DateFrom ist völlig okay; z.B "08.08.2017 00:00". Mit dem DateTo habe ich ein Problem. Wenn ich den 8. und 9. markiere wird im DateTo nicht etwa "09.08.2017 24:00" angezeigt sondern "10.08.2017 00:00". Damit wird zwar derselbe Zeitpunkt beschrieben, aber für den User ist das irreführend und ich habe das immer wieder als Fehlermeldung auf dem Tisch.

    Kann ich bei der Belegung des Feldes einfach eine Selunde/Minute abziehen, oder das Format ändern?

    Alternativ kann ich das natürlich mit Javascript im onload-event überschreiben...

  • #2
    Hier muss ich mal eine Lanze für Intrexx brechen ;-)
    Meines Erachtens ist die Notation in Intrexx so korrekt, 24:00 Uhr gibt es eigentlich nicht bzw. ist ungewöhnlich. Nachdem 23:59:59 vorbei ist, fängt der nächste Tag bei 0:00 an.
    Daher ist die Notation von Intrexx eigentlich nicht verkehrt, wenn auch vielleicht in der Tat verwirrend für den Nutzer.
    Letztendlich ist das eine Java-Geschichte und wie dort Daten formatiert werden:
    https://docs.oracle.com/javase/8/doc...Formatter.html
    Wie du siehst, zeigt der Datums-Platzhalter H nur 0 bis 23 Uhr an.

    Kommentar


    • #3
      nein das verwirrende ist wie ich auch finde nicht das 00:00 Uhr sonndern, dass das Datum ein Tag später ist als das was ausgewählt wurde.
      Man wählt z.B. bis zum 31.08.2017 aus aber im Feld steht dann eben der 01.09.2017

      Kommentar


      • #4
        Ja, das mag irritierend sein, ist aber datentechnisch korrekt. Auch wenn ich im Outlook einen Termin eintrage, welcher nur bis Mitternacht gehen soll, steht da trotzdem 00:00 und als Tag der nächste, beispielsweise
        Start 31.08.2017 22:30
        End 01.09.2017 00:00


        Eine theoretische Angabe wie End 31.08.2017 24:00 mag in dem Zusammenhang leichter verständlich sein, ist aber Standard im Java. Schau mal hier.

        Kommentar


        • #5
          Ich ziehe mit JS eine Minute ab und schreibe das dann zurück...

          Kommentar


          • #6
            Zitat von Elrond Beitrag anzeigen
            Ich ziehe mit JS eine Minute ab und schreibe das dann zurück...
            Dann hast du im worst case 23:59:00 - sieht auch doof aus

            Kommentar


            • #7
              Das ist kein Problem,, besser als das vermeintlich falsche Datum...
              Code:
              von 08.08.2017 00:00 bis 08.08.2017 23:59
              verstehen sogar User

              Kommentar


              • #8
                Zitat von Elrond Beitrag anzeigen
                Ich ziehe mit JS eine Minute ab und schreibe das dann zurück...
                Moin, wie sieht den so ein Script aus? Hab leider nicht viel Java Erfahrung und genau dein Problem!

                Lieben Gruß

                Kommentar


                • #9
                  sorry, habe deine Frage nicht eher gesehen....

                  Ich mache das so:
                  Code:
                  function kalenderEGKorrekturEndDate() {
                      //zieht eine sekunde ab und schreibt in das Feld zurück
                      var sField=getElement('BEBC059A7C99B9EA43D3A3D2F416F7A23A4DEB0A');
                      var dField=getElement('51881E9171FB0D0A9952FBB4ADDF88F3267B02D5');
                      var grOk=getElement("81BAD06CCE1AE98E1012A1E0978101D33DD2084E"); /*gr_ok  simplegroup*/
                      if (grOk){ //falls Eintrag möglich ist
                          var fld=Browser.getValue(sField);
                          var dt=new Date(fld.substr(0,10));
                          var tOffset = dt.getTimezoneOffset();
                          var tm=dt.getTime();
                  
                          tm=tm-60000; //zieht eine Minute ab
                          tm=tm+(tOffset*1000*60); //zieht timeoffset ab (-120 min)
                          dt.setTime(tm);
                  
                          Browser.setValue(dField,dt);
                          }
                      }

                  Kommentar

                  Lädt...
                  X