Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo liebe Community,

ich habe ein kleines Problem mit meiner Datumsabfrage und zwar wird das Datum in folgendem Format vom User eingetippt (z.B: 14.10.2008)

Ich hätte gerne das das Datum bei einer Falscheingabe (z.B: 4.10.08) in das Format vom obigen Beispiel direkt umgewandelt wird, würde da gerne eine Funktion in Javascript oder so schreiben doch habe noch keine Ahnung wie ich das anstelle .

also quasi

aus dem 4.10.08 sollte 04.10.2008 werden

bzw.

aus 14.2.84 soll dann 14.02.1984 werden

das ganze sollte vom Jahr 1941-2040 möglich sein zu überprüfen.

Hat einer ne Idee wie ich das am besten lösen kann?

MfG

Silver

da gibts n Javascript-Listener Event "onblur" glaube ich heißt es, das aufgerufen wird, sobald jemand ein Textfeld verlässt.

Dann siehst du dir den String an, änderst ihn entsprechend und schreibst ihn in das Feld zurück.

Sry für Doppelpost aber konnte den Post ned mehr ändern ohne den Admin zu fragen :eek

Hätte am liebsten einen Lösungsvorschlag in PHP anstatt in Javascript

dann ist die antwort die gleiche ;) beim verarbeiten des Formulars siehst du dir den String an, zerlegst ihn und füllst ihn entsprechend auf.

Danke für deine schnelle Antwort,

leider muss ich da trotzdem auf Javascript zugreifen.

Kennt jmnd evtl eine Möglichkeit die komplett ohne Javascript auskommt?

Du widersprichst Dir. Du willst eine Lösung die nicht in JS ist, aber dafür in PHP und dann wieder in JS. Was willst Du nun? Egal mit welcher Sprache Du es machst, es bleibt die selbe Algorithmik, String zerlegen, korrigieren und ggf in ein Date / Timestamp umwandeln.

Mit HTML geht das natürlich nicht, denn das ist eine Markup Sprache.

Phil

Wenn dein Datums-String per Post oder Get in deinem PHP-Script ankommt zerlegst du den String in seine Bestandteile (geht wunderbar mit RegEx), rechnest alles in einen Timestamp um und gibst das Datum formatiert mit der Funktion date() wieder aus. Oder du speicherst das Datum dann in eine DB oder machst sonstwas damit.

Schau hier einfach mal nach den PHP-eigenen Datums- und Zeitfunktionen.

Grüße,

bytebrain

P.S.: völlig ohne JavaScript :D

Danke für eure schnellen Antworten,

leider ist das kein Timestamp sondern ein Datum was in einem Textfeld eingetragen werden soll, ich habe mir aber schon nen kleines einfaches Script zusammen gebastelt.

Sind zwar nur nen paar IF-Abfragen und auch bestimmt nicht das gelbe vom Ei aber es funktioniert erstmal.

Hier ein paar Auszüge aus meinem Code


<?php

// Datum auseinander bauen

$date2 = $Vertragsbeginn;
$teile2 = explode(".", $date2);
$tag2 = $teile2[0];
$monat2 = $teile2[1];
$jahr2 = $teile2[2];


// Datumsergänzung bei Falscheingabe

// fügt eine 0 bei der Angabe des Tages für den Fall einer falschen bzw. unvollständigen Eingabe an

if ($teile2[0] !== '[0-9]' . '[0-9]')
{
$teile2[0]=('0' . $teile2[0]);
};


// fügt eine 0 bei der Angabe des Monats für den Fall einer falschen bzw. unvollständigen Eingabe an

if ($teile2[1] !== '[0-9]' . '[0-9]')
{
$teile2[1]=('0' . $teile2[1]);
};

// fügt entweder eine 19 oder eine 20 bei einer falschen bzw. unvollständigen Eingabe an die Jahreszahl an

if ($teile2[2] > "41")
{
$teile2[2]=('19' . $teile2[2]);
}
else
{
$teile2[2]=('20' . $teile2[2]);
};

//Daten für die Übergabe an die Datenbank vorbereiten

$Vertrag_Anfang = $teile2[2] . "-" . $teile2[1] . "-" . $teile2[0];
?>
[/PHP]

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.