1

特定の期間が経過したかどうかを確認するログインスクリプトがあります。dbからstrtotimeでフェッチするタイムスタンプがあることを認識して、この時間/文字列に秒の値を簡単に追加して、この特定の日付/時刻が経過したかどうかを確認できます。

昨日私はphp5.3にアップデートしました。今、私はエラーメッセージを受け取ります:

Warning: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /xxx/xxx/xxxx/xxx/login.php on line xx

これはこの行で実現します:

$DOA = strtotime($row->DOA);

問題は、どのように使用できますか?

date.timezone = "Europe/Berlin"
date.default_latitude = 52.5194
date.default_longitude = 13.4067

タイムスタンプを変換するには

$row->DOA

文字列として取得する必要があります。またはこれは:

date.timezone = "Europe/Berlin"
date.default_latitude = 52.5194
date.default_longitude = 13.4067

それが言われているので私が追加する必要がある情報だけ

We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead...

使用されている。

これを解決するためのアドバイスをくれる人がいたら、本当にありがたいです。

4

2 に答える 2

2

PHPのタイムゾーンが設定されていないだけだと思います。したがって、php.iniでそれを行うか、phpファイルで宣言することができます。

date_default_timezone_set('Europe/Berlin');
$DOA = strtotime($row->DOA);

それでエラーが解消されるかどうかを確認してください。

于 2012-04-19T09:16:31.687 に答える
0

次のコードを使用できます。

$timestamp = '1334826954';
$dateTime = new DateTime();
$dateTime->setTimezone(new DateTimeZone('Europe/Berlin'));
$dateTime->setTimestamp($timestamp);
echo $dateTime->format('Y-m-d H:i:s');

出力

2012-04-19 11:15:54
于 2012-04-19T09:18:07.540 に答える