Hallo,
ich hab es nun geschafft, alles soweit umzusetzen, mein Code sieht so aus
function check_time($hour, $minute) {
if (in_array($hour, range(0, 23))
and in_array($minute, range(0, 59))) return TRUE;
return FALSE;
}
function handleTimeInput($input) {
$parts = explode(':',$input);
$gueltig = check_time($parts[0], $parts[1]);
if ($gueltig === FALSE) {
return NULL;
} else {
$parts[0] = str_pad($parts[0], 2, "0", STR_PAD_LEFT);
$parts[1] = str_pad($parts[1], 2, "0", STR_PAD_LEFT);
$input = $parts[0] .":". $parts[1];
return $input;
}
}
if (strlen($_POST['montag_von']) > 0) {
$success_montag_von = handleTimeInput($_POST['montag_von']);
if($success_montag_von === NULL) {
$errors[] = "Montag <strong>von </strong>passt nicht";
}}
if (strlen($_POST['montag_bis']) > 0) {
$success_montag_bis = handleTimeInput($_POST['montag_bis']);
if($success_montag_bis === NULL) {
$errors[] = "Montag <strong>bis </strong>passt nicht";
}}
und mein Feld so
<input type="text" name="montag_von" id="montag_von" class="time_input" value="<?php if(isset($_POST['form_abschicken'])){
echo $success_montag_von;
} else {
echo $montag_von;
}
?>" >
klappt auch soweit _aber_ ich bekomme folgende Meldung "Notice: Undefined offset: 1 in" wenn ich im Feld z.B. nur eine 25 schreibe. Ist auch klar, denn in der Funktion wird geschaut was VOR : und NACH : steht.
Wie könnte ich dieses nun beheben? Eigentlich kann wenn man z.B. 23 eingibt automatisch ein :00 einfügen. Ich hab aber keine Ahnung wie ich dieses umsetzten könnte. Könntet mir hier jemand bitte nochmals helfen? Ich bin jetzt so weit gekommen.