PHP 5.1+ und neues Zeithandling

PHP 5.1+ und neues Zeithandling

am 18.08.2006 12:01:10 von Ulf Kadner

Moin!

Ich bin gerad etwas verwirrt.

1. Weil ich bisher übersehen hab, das in PHP5.1 neues Zeit-Handling
eingeführt wurden
2. Das mktime jetzt generell eine NOTICE sendet wenn ichs nutze.

Ist ja so das mktime() in den meisten PHP-Scripts seine Anwendung
findet, bzw. bisher gefunden hat.

Plötzlich folgende Notice:
mktime(): It is not safe to rely on the system's timezone settings.
Please use the date.timezone setting, the TZ environment variable or the
date_default_timezone_set() function. We selected 'Europe/Paris' for
'2.0/DST' instead

OK, hab ich also nen
date_default_timezone_set('Europe/Berlin');
an den Scriptanfang geschrieben.

Neue Notice danach:
mktime(): You should be using the time() function instead

Was geht in den Köpfen der PHP-Entwickler denn da ab?

Soll ich jetzt alles was ich vor 5.1 veröffentlicht habe wieder
umschreiben? mktime() => time()

Ich bin da jetzt nen bischen baff.

Was sagt Ihr dazu?

MfG, Ulf

Re: PHP 5.1+ und neues Zeithandling

am 18.08.2006 12:12:52 von Frank Schenk

Ulf Kadner wrote:
> Moin!
>=20
> Ich bin gerad etwas verwirrt.
>=20
> Neue Notice danach:
> mktime(): You should be using the time() function instead

Rufst du mktime() ohne Parameter auf?


http://www.symfony-project.com/trac/ticket/109

mktime() function seems to be revised in 5.1 but it's not deprecated.=20
The problem is getting the timestamp with a parameterless call to=20
mktime() instead of time() function. And it seems that phpguys added a=20
new strict standard to discourage this usage.

Falls du mktime() ohne Parameter aufrufst verstehe ich die Meldung,=20
statt mktime() schreibt man ja auch time() - auch wenn bei mktime() alle =

Parameter optional sind.

Wie in dem Zitat genannt - die arbeiten wohl fleissig an strict :)

gruß, Frank

Re: PHP 5.1+ und neues Zeithandling

am 18.08.2006 12:15:34 von Matthias Coy

Ulf Kadner schrieb:
> Moin!
>
> Ich bin gerad etwas verwirrt.
>
> 1. Weil ich bisher übersehen hab, das in PHP5.1 neues Zeit-Handling
> eingeführt wurden
> 2. Das mktime jetzt generell eine NOTICE sendet wenn ichs nutze.
>
> Ist ja so das mktime() in den meisten PHP-Scripts seine Anwendung
> findet, bzw. bisher gefunden hat.
>
> Plötzlich folgende Notice:
> mktime(): It is not safe to rely on the system's timezone settings.
> Please use the date.timezone setting, the TZ environment variable or the
> date_default_timezone_set() function. We selected 'Europe/Paris' for
> '2.0/DST' instead
>
> OK, hab ich also nen
> date_default_timezone_set('Europe/Berlin');
> an den Scriptanfang geschrieben.
>
> Neue Notice danach:
> mktime(): You should be using the time() function instead
>
> Was geht in den Köpfen der PHP-Entwickler denn da ab?
>
> Soll ich jetzt alles was ich vor 5.1 veröffentlicht habe wieder
> umschreiben? mktime() => time()
>
> Ich bin da jetzt nen bischen baff.
>
> Was sagt Ihr dazu?
>
> MfG, Ulf
Hi,

ich hab das glaube ich mit
date_default_timezone_set(date_default_timezone_get());
gelöst. Allerdings bin ich mir nicht mehr sicher welche time-funktionen
ich genutzt habe ausser time().

gruß
matze

Re: PHP 5.1+ und neues Zeithandling

am 18.08.2006 13:34:47 von Ulf Kadner

Frank Schenk wrote:

>> Neue Notice danach:
>> mktime(): You should be using the time() function instead
>
> Rufst du mktime() ohne Parameter auf?

Mal mit mal ohne.

Im speziellen fall ists ein call_user_func_array() welches mktime()
forciert. u.U. auch ohne parameter.

Aber nach nochmaligen kurzen Test sehe ich es passiert nur wenn ich
keine Parameter angebe.

> http://www.symfony-project.com/trac/ticket/109

Das entspricht ja dem was ich mir bereits selbst zusammengereimt hatte

Die haben doch nen Schuss. (Das regt mich jetzt nen bischen auf ;-))

> Falls du mktime() ohne Parameter aufrufst verstehe ich die Meldung,
> statt mktime() schreibt man ja auch time() - auch wenn bei mktime() alle
> Parameter optional sind.

Das ist ne Sache wie mans gelernt hat. Es gab bis Dato keinen Grund die
verwendung von mktime() ohne Parameter als schlecht/falsch zu
bezeichnen. Gerad in dem zusammenhang der bei mir zur Erkenntnis fuehrte
muss ich jetzt noch ne extra Prüfung einbauen die erst checkt ob
parameter da sind. Wenn nicht time() sonst mktime(). Geil wa? *heul*

> Wie in dem Zitat genannt - die arbeiten wohl fleissig an strict :)

Ich glaub ich besorg mir nen Server der Python unterstützt. ;-)
Dort braucht derartiges nicht erst umstrukturiert werden.

MfG, Ulf

Re: PHP 5.1+ und neues Zeithandling

am 18.08.2006 13:38:08 von Ulf Kadner

Matthias Coy wrote:

> ich hab das glaube ich mit
> date_default_timezone_set(date_default_timezone_get());
> gelöst. Allerdings bin ich mir nicht mehr sicher welche time-funktionen
> ich genutzt habe ausser time().

Hallo!

Wie der Frank bereits schrieb, ist das ein Problem von mktime() ohne
Parameter. Naja, wieder was dazugelernt. :-(

MfG, Ulf

Re: PHP 5.1+ und neues Zeithandling

am 18.08.2006 13:55:27 von Ulf Kadner

Ulf Kadner wrote:

> Ich glaub ich besorg mir nen Server der Python unterstützt. ;-)

Ein Anruf bei meinem Hoster vermittelte mir, das ich bereits Python
nutzen kann. ... und schon ist meine Laune besser ;-)

MfG, Ulf