WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Formular: Datum & Zeit umwandeln

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Formular: Datum & Zeit umwandeln - 21 Nov 2024 Antworten
im Forum für Webhosting Homepage gefunden:
Formular: Datum & Zeit umwandeln
hmader
Feiertags-Poster
Threadstarter




Beiträge: 30

Hi Leute,
stehe jetzt vor folgendem Problem: Ich habe ein PHP-Formular, das mit dem Abschicken die Daten in eine MySQL-Datenbank schreibt. Das funktioniert auch alles wunderbar.
Allerdings gibt es ein Feld "Datum" und zwei Felder "Zeit". In der Datenbank im Format YYYY-MM-DD und HH:MM:SS gespeichert. Wie muß ich am Formular herummurksen, damit mir falsch eingegebene Daten und Zeiten (z. B. D.M.YY und HH.MM) richtig gespeichert werden?
lg, Herwig

Diese Nachricht wurde geändert von: hmader
  Profil   E-Mail   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

Pfff, zeig mal den Code. Da müsstest du mit Reguläern Ausdrücken überprüfen, wierum das Datum eingegeben wurde und es dementsprechend speichern.

  Profil   Editieren   Zitieren
hmader
Feiertags-Poster
Threadstarter




Beiträge: 30

Was genau brauchst du, nur das Formular oder auch was aus der Datenbank?
In der Praxis geht's - schätze ich - eher um folgende Eingabeformen:
T.M.JJ, T.MM.JJ, TT.MM.JJJJ => JJJJ.MM.TT
H.MM oder HH.MM => HH.MM.SS

Diese Nachricht wurde geändert von: hmader
  Profil   E-Mail   Editieren   Zitieren
Omega2k
Otto-Normal-Poster




Beiträge: 55

Warum verwendet denn keine die TIMESTAMP? Für was hat man die wohl einfegührt...?

Beispiele:

1:
$timestamp=time();

--------> ab in die DB

<------ aus der DB
1: 
2: 
3: 
4:
$datum=date("d.m.Y",$timestamp); ### Format: DD.MM.JJJJJ
$uhrzeit=date("H:i:s",$timestamp); ### Format: HH:MM:SS


Falls man ein spezielles Datum als TIMESTAMP braucht, kein Problem:

1: 
2: 
3: 
4: 
5: 
6:
$timestamp2=mktime(intval($stunden),
intval($minuten),
intval($sekunden),
intval($monat),
intval($tag),
intval($jahr));


und da lässt sich schnell checken, ob was sinnvolles rauskommt...

---


@ http://www.omega2k.de

Diese Nachricht wurde geändert von: Omega2k
  Profil   Website   Editieren   Zitieren
hmader
Feiertags-Poster
Threadstarter




Beiträge: 30

öh, ich bin jetzt mit der Timestamp-Funktion nicht ganz so vertraut - nur: Wie löse ich damit das Grundproblem - nämlich dass ein X-beliebiges in der Zukunft liegendes Datum anders eigegeben wird als es in der Datenbank gespeichert wird?

  Profil   E-Mail   Editieren   Zitieren
Omega2k
Otto-Normal-Poster




Beiträge: 55

also zum verständnis:

$timestamp=mktime(
intval($stunden),
intval($minuten),
intval($sekunden),
intval($monat),
intval($tag),
intval($jahr));

Der function "mktime" ist es egal, was du eingibst... ob in der Zukunft oder in der Vergangenheit. Wenn Du checken willst, ob es in der Zukunft oder Vergangenheit liegt, hilft "time()" - die timestamp von JETZT.

1: 
2:
if (time()>$timestamp) $vergangenheit=true;
else $zukunft=true;


Siehe: http://de2.php.net/manual/de/function.mktime.php

auch wenn z.B. als Stunden = 40 gesetzt ist, das ist dem egal... es gibt keine falsche zeit bei TimeStamp... das ist IMMER die Anzahl der Sekunden zwischen der UNIX Epoche (January 1 1970) und der angegebenen Zeit! Damit lässt sich genialst rechnen... was ist denn genau Dein Problem?

---


@ http://www.omega2k.de

  Profil   Website   Editieren   Zitieren
hmader
Feiertags-Poster
Threadstarter




Beiträge: 30

Mein Problem ist folgendes: Ich habe ein Formular in PHP, in der man ein Datum und zwei Zeiten eingeben kann - ganz normal in Textfelder. Das wird dann in eine MySQL-Datenbank eingespeichert. Dort liegt die Zeit in der Form 12:34:00 vor. Wenn jetzt jemand aber "12.34" eingibt, wird ein falscher Wert in der Datenbank eingespeichert. Wie mache ich das am einfachsten, damit mir falsche Werte in richtige umgewandelt werden?
(Mir kommt während dem Schreiben eine Idee... Je ein Feld für Tag, Monat, Jahr und das dann zusammensetzen sollte doch funktionieren, oder?)

  Profil   E-Mail   Editieren   Zitieren
Philipp Gérard
Foren-Team




Beiträge: 1502

deine schreibidee ist genau die lösung.

---
Arbeit ist das Feuer der Gestaltung. - Marx

  Profil   E-Mail   Website   Editieren   Zitieren
Omega2k
Otto-Normal-Poster




Beiträge: 55

Exakt!

[12]:[34]:[00] und dann begrenzt du einfach die Input-Felder auf ne maximale Länge von 2...
und beim Datum das gleiche...

Aber warum speicherst Du denn nicht als TimeStamp? Damit lässt sich doch wesentlich besser rechnen?

Nur eine Denksportaufgabe: Wie würdest Du aus Deinen Daten denn den Unterschied in Sekunden oder so von 2 verschiedenen Zeiten berechnen?

---


@ http://www.omega2k.de

  Profil   Website   Editieren   Zitieren
hmader
Feiertags-Poster
Threadstarter




Beiträge: 30

ok... ich hab jetzt an dem script herumgebastelt - aber ich hab' ein Problem mit dem Zusammenbasteln der einzelnen Variablen - Es wird einfach überall "0" angegeben, also die Variablen nicht in die Datenbank übertragen...
Hier der relevante Code:

1: 
2: 
3: 
4: 
5:
// Übernahme des Formulars in die Datenbank
$sql="INSERT INTO $tabellenname (date, time_start, time_end, channel, title, text, langtext, picture, gay, lesbian, travestie, hiv, tipp) values ('$date', '$time_start', '$time_end', '$channel', '$title', '$text', '$langtext', '$picture', '$gay', '$lesbian', '$travestie', '$hiv', '$tipp')";

// Erstellen der Variable $date ($time_start und $time_end funktionieren analog)
..

  Profil   E-Mail   Editieren   Zitieren
Philipp Gérard
Foren-Team




Beiträge: 1502

$_POST['time'] nicht $time.

---
Arbeit ist das Feuer der Gestaltung. - Marx

  Profil   E-Mail   Website   Editieren   Zitieren
hmader
Feiertags-Poster
Threadstarter




Beiträge: 30

Dumme Anfängerfrage... Wo genau in meinem Beispiel gehört da das $_POST['time'] hin? In die SQL-Abfrage oder ins Erstellen der Variablen? Hab herumprobiert, herumgelesen - aber ich steh wieder mal total auf der Leitung... ;((

  Profil   E-Mail   Editieren   Zitieren
Lexia
Pixelschubser




Beiträge: 13

Hab mal eine kurze Frage zum Datum in PHP/MySQL.

Drei verschiedene Datumsangaben müssen bei mir in der Datenbank gespeichert werden, die Felder haben das Format date.
Bei der Abfrage gibts auch kein Problem, damit der User das Datum dann in der "normalen" Form sieht, also z.B. 13.09.2006, hab ich das so gelöst:

1:
$sql = mysql_query ("SELECT ID,name,DATE_FORMAT(offer_end,'%d.%m.%Y'),DATE_FORMAT(res_begin,'%d.%m.%Y'),DATE_FORMAT(res_end,'%d.%m.%Y'),price,price_offer,member_max,member_act,description,organizer,insurance,archived FROM tour_reise WHERE ID=$ID");


Nur wie kriege ich jetzt nach einem Update das vom User eingegebene Datum wieder ins richtige Format in die Datenbank? Wenn man jetzt einfach so speichert ohne das Format umzuwandeln werden alle Datumsangaben auf 0 zurückgesetzt.

Vielen Dank schonmal, ich hoffe das ist ganz einfach zu lösen...

Diese Nachricht wurde geändert von: languitar
  Profil   E-Mail   Editieren   Zitieren
raiserle
Mausakrobat




Beiträge: 172

welches?
seh nicht, was du willst
du kannst doch ein datum vom format date auch speichern

1: 
2: 
3: 
4: 
5:
 SET dein_datum='".$datum_str."' WHERE ";
mysql_qu.....
?>


oder gehts dir darum, wie du aus einem timestamp ein solchiges format bekommst?
1: 
2: 
3: 
4: 
5:
 SET dein_datum='".$dein_format."' WHERE ";
mysql_qu.....
?>

sorry, aber ich weis wirklich nicht was du da machen willst.

gruß raiserle

---
Irren is Menschlich

Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!

Kameradschaft ist, wenn der
Kamerad schafft !!!!

  Profil   Editieren   Zitieren
Lexia
Pixelschubser




Beiträge: 13

Nein, der User gibt ein Datum ein, z.B. das Startdatum einer Reise (also kein Timestamp möglich, da das Datum auch in der Vergangenheit und Zukunft liegen kann).
Der User gibt das Datum im Format 24.08.2006 ein.
So kann das datum aber nicht in der Datenbank gespeichert werden, da das entsprechende Feld in der Datenbank nicht vom Typ varchar ist sondern vom Typ date. Wie kann ich nun also das vom User eingegebene Datum in das Format date umwandeln bevor es in der Datenbank gespeichert wird?

  Profil   E-Mail   Editieren   Zitieren
Seite 1 | 2  

Antworten
Forum » PHP & MySQL » Formular: Datum & Zeit umwandeln

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Formular: Datum & Zeit umwandeln im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8126511    Heute : 429     Gestern : 463     Online : 195     21.11.2024    13:52      1 Besucher in den letzten 60 Sekunden        
alle 60.00 Sekunden ein neuer Besucher
Nach oben