1

我有一个登录脚本,用于检查某个时间段是否已过。意识到我有一个时间戳,我用 strtotime 从我的数据库中获取,这样我就可以轻松地向这个时间/字符串添加一个秒值来检查这个特定的日期/时间是否已经过去。

昨天我更新到 php 5.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 回答