InternInhaltsverzeichnisGlossarBausteineLinklisteTutorialsKommentare

Thema: Datum und Zeitfunktionen Artikel anzeigen

Besucher schrieb am Dienstag, den 21 September 2021 #1
Hallo,

Ich möchte nur das eingetragenes Jahr von dem aktuellen Jahr abziehen.
Dann überprüfen ob das eingetragenes Jahr das Jahresformat entspricht.
Wie kann ich es bewerkstelligen.

Gruß
Werner schrieb am Dienstag, den 21 September 2021 #2
Hallo,
Zuerst überprüfen ob es das Jahresformat entspricht, mit: strlen() == 4, is_numeric()...
Dann überprüfen ob sich das eingetragene Jahr vom aktuellen Jahr abziehen lässt.
Besucher schrieb am Mittwoch, den 22 September 2021 #3
Gruß,
Ich habe an dich gesendete Quellcode Subtraktion mit Jahresformat ,
anders gelöst.Im Formular etwas input Feld geändert,<input type="number" min="1900" max="2021"/>
jetzt funktioniert auch der Quellcode dazu.
Besucher schrieb am Montag, den 27 September 2021 #4
Gruß,

Ich möchte hier an dem php Skript mit dem bestimmten Jahresformatsausgabe,
andere Möglichkeiten hinzufügen.
if(!preg_match('/^(19\d{2}|20[0-9]{2})$/',$jahresausgabe)){

echo "Nicht ok";

}else{

echo "Ist ok";

}

es funktioniert,aber ich wollte bis 2021 Einträge prüfen und ausgeben.
ich hatte alle variationen mit regex ausprobiert,rechnet die Jahren
bis zu 2099,wie kann ich auf das Jahresformat 2021 oder 2022 begrenzen.
Danke!
Werner schrieb am Montag, den 27 September 2021 #5
Das Script müsste dann jedes Jahr angepasst werden!
Du kannst beim Input-Tag auch die Attribute min="" und max="" zusammen mit PHP verwenden.

<label>Jahr:
<input type="number" min="<?=date("Y");?>" max="<?=date("Y")+1;?>" name="" required="required"></label>

oder
if ($jahresausgabe < 2021 || $jahresausgabe > 2022) {
...
}
Oder
if ($jahresausgabe < date("Y") || $jahresausgabe > (date("Y")+1)) {
...
}
Besucher schrieb am Dienstag, den 28 September 2021 #6
Gruß,

Ich wollte eigentlich nicht clientseitig das Problem lösen.
Anscheinend php hat,was Datumeingabe betrefft nicht die
Funktionen weiter erweitert,hier sehe ich eine Lücke.
Ich füge meinen code anbei,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  echo "<b>Mit formulareingabe Jahresformat vergleichen.</b>";
    
      echo "<br>";
      
     echo '<form action="?" method="post">';
     
     echo '<label>Jahreingabe:</label>';
     
     echo "<br>";
      
     echo '<input type="number" name="jahrausgabe" min="1900" max="2022"/>';
     
       echo "<br><br>";
     
      echo "<input type='submit' name='submit' value='senden'/>";
      
      echo "<br>";
      
      echo '</form>';
      
       if (isset($_POST['submit'])){
       
       $jahrausgabe = $_POST['jahrausgabe'];
       
          
       
        if(empty($jahrausgabe)){
        
          echo "Bitte tragen Sie das Jahr ein!";
          
         }
        
          elseif($jahrausgabe < 2022 || $jahrausgabe > 2021 ){ //das ist deine empfehlung.
        
           echo $jahrausgabe ."\n ist richtig";
           
         }else{
         
           echo "Ist nicht ok";
           
      }
      
    }
Werner schrieb am Dienstag, den 28 September 2021 #7
Lasse das Attribut: action="?" weg, wenn das PHP-Script auf der gleichen Seite ist.

Das mit der Validierung des Datums must du selbst wissen für welchen Zweck das verwendet wird. Es wird wohl niemand einen Zahnarzt-Termin eintragen, der im Jahr 1900 stattfinden soll, 🙂
Das mit der RegEx ist Käse, ein einfacher Vergleich reicht doch aus, um zu überprüfen, ob sich das Jahr im gewünschten Wertebereich befindet.
Du kannst unterhalb des Formularfeldes hinschreiben welche Eingabewerte erwartet werden. Alternativ kannst du das placeholder-Attribut dazu verwenden.