Ankündigung

Einklappen
Keine Ankündigung bisher.

Datum ohne Jahr in definierten Bereichen finden

Einklappen

Neue Werbung 2019

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

  • Datum ohne Jahr in definierten Bereichen finden

    Hallo
    Ich würde in einem Textfeld gerne Zeiträume und Konditionen definieren und dann prüfen vom eine Eingabe in einen definierten Zeitraum fällt.

    Die Liste der definierten Werte beinhaltet keine Jahre, da der Wert unabhängig vom Jahr ist.
    Der Input-Zeitraum ist nicht auf ein Jahr beschränkt.
    Ich hänge bei der Erstellung eines Zeitraums für $list um zu prüfen ob $date in einem Zeitraum vorhanden ist.

    PHP-Code:
    $default 25;
                
    $text "15.12-07.01-30\n01.10-14.12-20";
                
    $records explode("\n"$text);

                
    $list = [];

                foreach(
    $records as $record){
                    
    $row explode('-',$record);
                    
    //Start und Ende kann nicht in Date umgewandelt werden, da das Jahr unbekannt ist
                    
    $list[] = [
                        
    'start' => $row[0],
                        
    'end'   => $row[1],
                        
    'value' => $row[2]
                    ];
                }

                
    $input_start '2023-12-29';
                
    $input_end '2024-02-10';

                
    $values = [];

                
    $period = new \DatePeriod(new \DateTime($input_start), new \DateInterval('P1D'), new \DateTime($input_end));
                foreach(
    $period as $date){
                    
    //Das Datum, für welches ein Wert benötigt wird
                    
    $date->format('d.m');

                    
    //Ist Datum in $list, dann Wert aus $list
                    //??
                    //Sonst $default
                    
    $values[] = [
                        
    'date' => $date->format('d.m.Y'),
                        
    'value' => $default
                    
    ];
                } 
    Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

  • #2
    Und was möchtest Du uns fragen? Wobei hoffst Du auf unsere Unterstützung?

    Kommentar


    • #3
      Du hast Beginn des Zeitraum (z.b: 1970) und Ende (z.B. 1980), sowie Start und Ende des Bereichs (5. Mai - 6. Juni)

      Schleife 1970 bis 1980
      - 5.Mai 1970 - 6.Juni 1970
      - 5.Mai 1971 - 6.Juni 1971
      ...

      Sonderfälle: Wenn Ende des Bereichs kleiner ist als Start des Bereichs, dann muss End-Jahr um 1 höher sein
      Aka: 23.Dezember - 02.Januar (Ende liegt vor Anfang, wenn es im gleichen Jahr betrachtet wird) wird zu: 23.12.1970 bis 02.01.1970+1

      Damit hast du jeweils ein konkretes Start- und Enddatum, wogegen du ein anderes Datum prüfen kannst.
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        Danke, manchmal ist die Lösung direkt vor der Nase und man sieht sie nicht.
        Ich habe das Jahr / die Jahre durch den Input ...
        Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

        Kommentar

        Lädt...
        X