我在所有index.php
文件中使用以下内容来包含全局页脚:
<?php include($_SERVER['DOCUMENT_ROOT'].'/_footer.php'); ?>
除了PHP之外,_footer.php文件本身没有太多内容可以返回当前年份:
<div class="footer">
<p id="left">Company Address</p>
<p id="right">Copyright <?php echo date("Y"); ?> Company Incorporated</p>
</div>
</div> <!-- end .wrapper -->
</body>
</html>
虽然上面的代码在上传到Web服务器时有效,但它在我的localhost(带有Coda 2的Mac OS X)中不起作用,我收到错误消息:
警告: DATE()[ FUNCTION.DATE ]:系统的TIMEZONE设置无法安装。您需要使用 DATE.TIMEZONE设置或DATE_DEFAULT_TIMEZONE_SET()函数。在 如果你使用了这些方法中的任何一种,你仍然会得到这个 警告,您最可能误解了TIMEZONE IDENTIFIER。我们 选择'UTC'为'GMT / 0.0 / NO DST'INSTEAD IN /USERS/USER/SITES/COMPANY/EXAMPLE.COM/_FOOTER.PHP 在线 3
我认为设置时区不是一个问题(因为它是一个仅用于显示年份的简单函数),但它在本地测试时打破了页脚的设计:
所有文字(例如“版权所有”)都是在黄色框内。
在这种情况下我该怎么做?
答案 0 :(得分:6)
您是否阅读过错误消息?它非常清楚地表明依赖系统的时区设置是不安全的,并且您需要使用Date.Timezone
设置或date_default_timezone_set()
功能。
所以,做一个或另一个。
a)修改你的php.ini
以获得此信息:
date.timezone=Europe/London
或b)在您date()
(或全局包含的脚本)的电话上方拨打此电话:
date_default_timezone_set('Europe/London');
显然,Europe/London
应替换为您在此处可用列表的实际时区标识符:http://php.net/manual/en/timezones.php
只是另外一个注意事项,如果它没有在您的服务器上显示,那是因为display_errors
被禁用,或者您的错误报告级别低于开发计算机中的错误报告级别,这当然应该是。
答案 1 :(得分:1)
阅读并理解错误如何在php中运行:http://php.net/manual/en/function.error-reporting.php。让自己成为一种错误方法,不包括在页面上显示错误,而是将其发送到文件。
通过执行警告说明来解决问题:请参阅http://php.net/manual/en/function.date-default-timezone-set.php
如果您想要粗暴,请在产生警告的电话前放置@
。它压倒了错误/警告。
答案 2 :(得分:1)
我会把你的html“由里到外”以这种方式解决你的问题:
<?php
date_default_timezone_set('America/Chicago');
$displayDate = date("Y");
print <<<HERE
<div class="footer">
<p id="left">Company Address</p>
<p id="right">Copyright $displayDate Company Incorporated</p>
</div>
HERE;
?>
您可以执行更复杂的操作来设置日期文本并使其“恰到好处”。
答案 3 :(得分:0)
设置date_default_timezone_set
http://php.net/manual/en/function.date-default-timezone-set.php
答案 4 :(得分:0)
请在php.ini date.timezone
中设置默认时区eg: date.timezone = = America/Los_Angeles