strtotime() Probleme auf dem Server, lokal gehts

McMay

Mitglied
Hallo zusammen,
ich habe folgendes Problem:
Ich will auf einer Seite ermitteln, ob ein gebuchter Termin noch storniert werden kann.
Das soll bis 12h vor dem Termin möglich sein.
Die Zeiten hole ich mir aus der DB.

Das Problem gibt es eigentlich erst als ich die Seiten auf den Server gespielt habe.
Lokal geht alles wunderbar.
Hier ist ein teil des Codes:

PHP:
echo 'Jetzt: '.time().'<br>';
    echo 'Datum: '.$datum.'<br>';
    echo 'Zeit: '.$zeit.'<br>';
    echo 'Stornozeit: '.$stornoTime = strtotime("-12 hours", strtotime($datum.$zeit)).'<br>';
    echo 'Uhrzeit des Storno: '.date('H:i',$stornoTime).'<br>';

Lokal ist die Ausgabe dann so:

Jetzt: 1201944432
Datum: 04.02.2008
Zeit: 09:00
Stornozeit: 1202068800
Uhrzeit des Storno: 21:00

und auf dem Server bekomme ich folgendes Ergebnis:

Jetzt: 1201944545
Datum: 04.02.2008
Zeit: 09:00
Stornozeit: -43201
Uhrzeit des Storno: 12:59

Lokal verwende ich die PHP Version 5.2.5 und
auf dem Server läuft PHP Version 4.3.10-22

Kann es daran liegen?
Ich werde noch WAHNSINNIG. Weiß nicht mehr wo ich suchen soll.
THX für jeden Hinweis und jegliche Hilfe.
 
Das zusammengesetzte Datumsformat „04.02.200809:00“ ist nicht lesbar. Es müsste nämlich „2008-02-04 09:00“ lauten. Probier mal Folgendes:
PHP:
strtotime(implode('-', array_reverse(explode('.', $datum)))." {$zeit} -12 hours")
 
Da bekomme ich bei diesem Code:

PHP:
$stornoTime = strtotime("-12 hours", strtotime( $datum.$zeit ));
	echo 'Jetzt: '.time().'<br>';
	echo 'Datum: '.$datum.'<br>';
	echo 'Zeit: '.$zeit.'<br>';
	echo 'Stornozeit: '.$stornoTime = strtotime("-12 hours", strtotime($datum.$zeit)).'<br>';
	echo 'Stornozeit_neu: '.$stornoTime_new = strtotime("{$datum} {$zeit}:00 -12 hours").'<br>';
	echo 'Uhrzeit des Storno: '.date('H:i',$stornoTime).'<br>';
	echo 'neu: '.date('H:i',$stornoTime_new).'<br>';

Auf dem Server immer folgende Ausgabe:

Jetzt: 1201955918
Datum: 02.02.2008
Zeit: 09:00
Stornozeit: -43201
Stornozeit_neu: -1
Uhrzeit des Storno: 12:59
neu: 00:59

Geht also auch nicht!
Lokal funktioniert es weiterhin.
Noch irgendwelche Ideen?
THX Heiko
 
Hast du deinen Post geändert?

Jetzt scheint es zu funktionieren...

Werde es nochmal weiter testen und mich dann nochmal melden.

Erstmal vielen Dank,
aber warum t es lokal und auf dem server nicht?
 
Tatsächlich, es funktioniert.
Aber warum ging es auf dem lokalen Rechner und auf dem Server nicht?

Trotzdem Herzlichen Dank Gumbo
 
Ich muss hier nochmal einhacken!
Schon wieder ein Problem mit strtotime() und wieder läuft es lokal aber auf dem Server bekomme ich -1 als Rückgabe.

hier die beiden Skriptvarianten, die beide lokal einen Timestamp zurückliefern:

PHP:
$massTime = strtotime(implode('-', array_reverse(explode('.', $datum))). $zeit);
$massTime = strtotime($datum.' '.$zeit);

Ich möchte jetzt einen Butten inaktiv setzen, wenn der Termin vorbei ist.
Termin um 09:00 Uhr, um 09:01 soll dieser Termin nicht mehr zu buchen sein. Deshalb muss ich die aktuelle Zeit time() mit der Zeit auf dem Button vergleichen.
Ich habe von dem vorherigen Skript (siehe bei Gumbo) einfach die -12 hours entfernt. Funktioniert ja lokal auch aber auf dem Server, wie gesagt immer als Rückgabe -1.

Woran kann das liegen? Verschiedene PHP-Versionen?

Bitte um Hilfe...
 
Du hast wieder das Leerzeichen zwischen Datum und Uhrzeit vergessen.
PHP:
$datum = implode('-', array_reverse(explode('.', $datum)));
$massTime = strtotime($datum.' '.$zeit);
 
Ja, es funktioniert jetzt tatsächlich. Vielen Dank.
Aber hast du eine Ahnung warum es lokal viel 'einfacher' geht und ich auf dem Server das Datum neu zusammensetzen muss?

Trotz allem vielen Dank und ich werde mich nochmal mehr mit der DOKU auseinander setzen.
 
Zurück