我使用以下脚本将我的标准DATETIME标记转换为小时前,几天前等显示。
<?php require_once 'config.php'; ?>
<?php
date_default_timezone_set('Europe/Kaliningrad');
function pretty_relative_time($time) {
if ($time !== intval($time)) { $time = strtotime($time); }
$d = time() - $time;
if ($time < strtotime(date('Y-m-d 00:00:00')) - 60*60*24*3) {
$format = 'F j, Y';
if (date('Y') !== date('Y', $time)) {
$format .= ", Y";
}
return date($format, $time);
}
if ($d >= 60*60*24) {
$day = 'Yesterday';
if (date('l', time() - 60*60*24) !== date('l', $time)) { $day = date('l', $time); }
return $day . " at " . date('g:ia', $time);
}
if ($d >= 60*60*2) { return intval($d / (60*60)) . " hours ago"; }
if ($d >= 60*60) { return "less than an hour ago"; }
if ($d >= 60*2) { return intval($d / 60) . " minutes ago"; }
if ($d >= 60) { return "about a minute ago"; }
if ($d >= 2) { return intval($d) . " seconds ago"; }
return "a few seconds ago";
}
?>
然后我按照这样调用函数:
echo pretty_relative_time($row['user_blocked_timestamp']);
这在本地主机上工作正常但是在我的服务器上测试时出现以下错误:
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.
有人可以解释为什么我会收到此错误以及我可以采取哪些措施来解决此问题。
到目前为止,我使用以下方式存储所有DATETIME标记:
UTC_TIMESTAMP() rather than now()
提前感谢。
答案 0 :(得分:0)
只需按照错误告诉您的内容,在页面顶部放置默认时区。
date_default_timezone_set('Europe/Kaliningrad');
您可以在此处找到所有时区名称。 http://php.net/manual/en/timezones.php