Anfänger - Datum umkonvertieren

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
MrGain
Mitglied
Beiträge: 1
Registriert: 08.02.2010 17:56

Anfänger - Datum umkonvertieren

Beitrag von MrGain »

Hallo,

bin Anfänger und habe gerade einen Hänger:

FOlgendes Problem:


Habe eine Tabelle erstellt mit einem TimeDate Format.


In einem PHP Formular habe ich jedoch die Zeit + Date in einzelne Felder gepackt. Wie kann ich aus dem PHP Formular das Datum und die Zeit in das richtige Format umkonvertieren:

0000-MM-DD HH:MM:SS

Es soll zum einen geprüft werden, dass das Datum richtig eingegeben ist und zum anderen sollen halt die beiden Tabelleneinträge ins TimeDate Format umgewandelt werden.

Habe folgende Funktion, welche jedoch nicht funktioniert:

=============================

Code: Alles auswählen

function pruef_php_date($PHPDATE) 
{ /* Pruefen und Umwandeln eines Datum im Format 01.12.2002 */
if ( strlen($PHPDATE) >= 8 )
{
if ( $PHPDATE[1] == "." )
{ /* Tag wird nur einstellig dargestellt, fuehrende Null fehlt */
$PHPDATE = strrev($PHPDATE)."0";
$PHPDATE = strrev($PHPDATE);
}
if ( $PHPDATE[4] == "." )
{ /* Monat wird nur einstellig dargestellt, fuehrende Null fehlt */
$PHPTMP = "0".substr($PHPDATE, 3, 6);
$PHPDATE = substr($PHPDATE, 0,3).$PHPTMP;
}
if ( strlen( $PHPDATE ) == 8 and $PHPDATE[1] != "." and $PHPDATE[4] != "." )
{ /* Eingabe ohne Punkte */
$PHPTMP = ".".substr($PHPDATE, 4, 4);
$PHPTMP1 = ".".substr($PHPDATE, 2, 2);
$PHPDATE = substr($PHPDATE, 0,2).$PHPTMP1.$PHPTMP;
}
if ( strlen( $PHPDATE ) < 9 )
{ /* Jahr wir nicht 4stellig eingegeben */
Error_Msg( "Fehler 1: Datum hat ein falsches Format: ".$PHPDATE." Bitte geben Sie das Datum in der Form tt.mm.jjjj ein!" );
}
}
else
Error_Msg( "Fehler 2: Das Datum hat ein falsches Format: ".$PHPDATE." Bitte geben Sie das Datum in der Form tt.mm.jjjj ein!" );
return $PHPDATE;
}
===============================


Wo genau baue ist das denn dann ein?

Code: Alles auswählen

if ($aktion == "Speichern")
{
  include("../../standard.php");
  pruef_php_date($datum_von);
  pruef_php_date($datum_bis);
so??


Viele Grüße :)
Zuletzt geändert von MrGain am 08.02.2010 19:43, insgesamt 1-mal geändert.
Benutzeravatar
bantu
Server-Team
Beiträge: 7311
Registriert: 25.04.2006 16:12
Wohnort: Karlsruhe

Re: Anfänger - Datum umkonvertieren

Beitrag von bantu »

Formatiere in deinem Beitrag doch bitte Code mit dem [code][/code]-Tag oder dem [code=php][/code]-Tag.
Powered by Coffee
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Anfänger - Datum umkonvertieren

Beitrag von Pyramide »

Du könntest z.B. strptime verwenden oder einen regulären Ausdruck:

Code: Alles auswählen

$str = '08.02.2010 21:30';
if(preg_match('#(\d{1,2}).(\d{1,2}).(\d{4}) (\d{1,2}):(\d{2})#', $str, $m) {
  //Datum gültig; Tag ist in $m[1], Monat in $m[2] usw.
}
else {
  //Datum ungültig
} 
KB:knigge
Antworten

Zurück zu „Coding & Technik“