Datumsumwandlung

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

  • Datumsumwandlung

    Hallo Leute,

    folgende Problemstellung:

    Mein Formular übergibt Daten in eine Datenbank. unter anderem auch das Erfassungsdatum, (wird vom System ermittelt und übermittelt).

    Ich brauchen nun noch ein Zusatzfeld das im Endeffekt Daten generiert, die folgendermassen aussehen sollen:

    200232Mi oder 200232Fr

    Erläuterung:

    Die erzeugte Zeichenfolge teilt uns mit wann die übermittelten Daten veröffentlicht werden sollen, z.B. 200232Mi im Jahr 2002 Kalenderwoche 32 am Mitwwoch
    oder 200232Fr im Jahr 2002 Kalenderwoche 32 am Freitag

    so weit so gut, aber jetzt kommts:

    massgebend für die Generierung der Zeichenfolge ist aber der Zeitpunkt der Übermittlung,

    in diesem Beispiel:

    daten die zwischen 200231Do 14.01Uhr und 200232Di 14.00Uhr aufgegeben werden sollen mit 200232Mi in der Db erscheinen.

    daten die zwischen 200232Di 14.01Uhr und 200232Do 14.00Uhr aufgegeben werden sollen mit 200232Fr in der Db erscheinen.

    daten die zwischen 200232Do 14.01Uhr und 200233Di 14.00Uhr aufgegeben werden sollen mit 200233Mi in der Db erscheinen.

    usw.

    Ich hoffe das Ganze ist nicht zu kompliziert, vielleicht könnt Ihr mir ja helfen.

    Martin

  • #2
    ich konnte auf die schenlle kein prizip erkennen, aber ich denke DU wirst es kennen

    ich würde sagen, du machst später den SELECT mit "where spalte_datum betwen datum1 and datum2"

    wie du datum1 und datum2 ausrechnest überlasse ich ersteinmal dir
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      Erklärungsversuch

      vielleicht kann man es auch einfacher ausdrücken

      für Datensatzübermittlungen zwischen Dienstag 14:01 Uhr und Donnerstag 14:00 Uhr soll angezeigt werden

      Jahr aktuelleWoche Fr

      für Datensatzübermittlungen zwischen Donnerstag 14:01 Uhr und Dienstag 14:00 Uhr soll angezeigt werden

      Jahr nächsteWoche Mi (nächste Woche allerdings nur für Übermittlungen Do> 14:00, Fr, Sa, So, dann beginnt ja schon die aktuelle Woche)

      Kommentar


      • #4
        nun bin ich schlauer
        ABER ich weiss noch immer nicht genau wann was angezeigt werden soll. wie sieht deine tabelle aus, und wie soll der select aussehen. die kriterien habe ich nun verstanden
        h.a.n.d.
        Schmalle

        http://impressed.by
        http://blog.schmalenberger.it



        Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
        ... nur ohne :-)

        Kommentar


        • #5
          Umrechnung

          Es soll dieser Wert eigentlich schon beim Übermitteln des Datensatzes in die Datenbank generiert werden und zwar über die Datums und Zeitfunktion

          $anzdatum=date("Y.m.d - H:i:s");

          mir ist nur nicht klar, wie ich diese Werte umwandeln kann, damit das von mir gewünschte Ergebnis erzeugt wird und in ein seperates db-Feld eingefügt wird.

          Kommentar


          • #6
            Klar kann man das einfacher ausdrücken:
            nach 1400 -> nächster Tag
            Mittwoch oder Donnerstag -> nächster Freitag
            sonst -> nächster Mittwoch

            und so sieht das ganze in php aus:
            PHP-Code:
            $t time();
            // nach 14 Uhr: nächster Tag
            if (date('Hi',$t)>'1400')
              
            $t+= 10*3600;

            // Mittwoch oder Donnerstag=>Freitag
            $w date('w'$t);
            if (
            $w==|| $w==4)
              
            $t += (5-$w)*86400;
            # sonst -> Mittwoch
            else
              
            $t += ((3-$w)%7)*86400;

            // Datumsstring erstellen
            $datum date('Y'$t)
              
            # weil date('W') evtl. einstellig: mit 0 auffüllen
              
            strpad (date('W'$t), 2'0'STR_PAD_LEFT)
              
            # deutsches Kürzel für den Wochentag:
              
            . (date('w',$t)==5?'Fr':'Mi')

            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar

            Lädt...
            X