"We are back" « oc.at

datum überprüfen mit php

Ezekiel 02.10.2003 - 22:27 742 10
Posts

Ezekiel

OC Addicted
Avatar
Registered: Jun 2001
Location: na
Posts: 3329
Ich versuche gerade ein script zu schreiben dass ein datum überprüft und feststellen soll ob es schon vergangen ist oder erst im kommen ist.
ich habs mal folgendermaßen probiert:

Code: PHP
						
if ($year>=date(Y)) {
  if ($month>=date(m)) {
    if($day>=date(d)) {
      echo "$bla";
    }
  }
}

funktioniert 1. nicht und 2. würde dann zb. der 1.1.2004 am 30.12.2003 schon als vergangenheit gedeutet werden.
hat vielleicht jemand ein funktionierendes script dass das datum überprüft (ich werde denk ich mal nicht der einzige sein der sowas verwendet/verwenden will )? oder kann mir jem. einen ansatz sagen, mir fällt grade nichts ein, bzw. hab ich nicht die php skills um mir was auszudenken ;).

tia, ezekiel
Bearbeitet von Ezekiel am 04.10.2003, 11:54

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Normalerweise macht man einen fortlaufenden Wert daraus (dafür gibt's in php sicher Funktionen), und diesen kann man dann einfach mit <, <= usw vergleichen.

Ezekiel

OC Addicted
Avatar
Registered: Jun 2001
Location: na
Posts: 3329
wie gesagt ich bin nicht wirklich ein programmier gott, kannst du das vielleicht ein wenig detaillierter erklären? ;)
tia

Phobos

&#10013;
Avatar
Registered: Jan 2003
Location: 1050
Posts: 2111
int checkdate(int Monat, int Tag, int Jahr)

Mit checkdate() kann man ein Datum auf Gültigkeit überprüfen.
Ist das Datum gültig, wird true, sonst false zurückgeliefert.

Code: PHP
<?PHP
$check1 = checkdate(12,23,1971);
$check2 = checkdate(13,23,1971);
if($check1 == 1) echo "Der 23.12.1971 ist ein korrektes Datum.";
if($check2 == 1) echo "Der 23.13.1971 ist ein korrektes Datum."; 
?>

wennst das ganze datum in einer string hast musst es halt zuerst exploden.

/add

ups sorry hab mich verlesen....
mein post hilft dir natürlich NICHT weiter.
Bearbeitet von Phobos am 02.10.2003, 23:14

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Ich weiß es ja auch nicht auswendig. Ich müsste genau wie du in der PHP-Dokumentation in den Abschnitt über Datumsfunktionen nachschauen. Also warum sollst das nicht gleich du machen?

Ezekiel

OC Addicted
Avatar
Registered: Jun 2001
Location: na
Posts: 3329
ich habe auf php.net gesucht aber nichts gefunden was mir weiterhilft. ich werde morgen nochmal schauen, ist mir klar das niemand anderer fuer mich suchen wird ;)

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Nachdem ich nicht glauben kann, dass da nix zu finden ist, hab ich grade selber geschaut. mktime ist das, was du willst.

othan

Layer 8 Problem
Avatar
Registered: Nov 2001
Location: Switzerland
Posts: 4280
Bin selbst auch noch am lernen aber ich glaub ich hab da was gelesen...
versuch mal damit was zu basteln:

Zitat
Funktion:
time()

Anwendung:
$stamp = time()

Beschreibung:
gibt aktuellen Unix-TimeStamp zurück
(in sekunden)

Funktion:
mktime()

Anwendung:
$stamp2 = mktime($stunde, $minute, $sekunde, $monat, $tag, $jahr)

Beschreibung:
gibt den UNIX-TimeStamp für ein spzielles Datum zurück

Code: PHP
$stamp1 = time() ;
$stamp2 = mktime(12, 30, 30, 03, 28, 1983) ;

if ($stamp1 > $stamp2)
{
echo "Dieser Tag liegt in der Vergangenheit!";
}

/EDIT:

1. 0wned

und 2. Quelle: GoTo PHP4
Autor: Dirk Ammelburger
Verlag: Addison-Wesley

Phobos

&#10013;
Avatar
Registered: Jan 2003
Location: 1050
Posts: 2111
so hab ichs grad geschreiben

das date als unix timestamp ausgeben lassen, dann hast an absoluten wert und den kannst dann einfach vergleichen in einer abfrage.

/edit

shit, 0wned :(

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
für alle wichtigen standard c funktionen, gibts 1:1 php wrapper.

Ezekiel

OC Addicted
Avatar
Registered: Jun 2001
Location: na
Posts: 3329
dankeschön ;)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz