我在输出在我的 PHP
文件中创建的日期时遇到问题。
我一直在关注如何制作一个真正的 Basic-CMS 平台的教程,以帮助我了解 databases
和 PHP
的一些基础知识,一切都已经完成一切顺利,直到我尝试输出页面的创建日期。
这是我得到的错误
Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): 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 the timezone 'UTC' for now, but please set date.timezone to select your timezone.' in
C:\MAMP\htdocs\basic-cms\page.php:22 Stack trace: #0 C:\MAMP\htdocs\basic-cms\page.php(22): DateTime->__construct('2016-02-17 10:3...') #1 {main} thrown in C:\MAMP\htdocs\basic-cms\page.php on line 22
现在,当我删除 page.php
中的第 22 行时,它会输出数据库中的完整日期,即 2016-02-17 10:38:05
但是我正在尝试对其进行格式化以显示日期,例如 jS M, Y (17th Feb 2016)
。
这是我的page.php
文件中的代码
if ( $page ) {
$page['created'] = new DateTime( $page['created'] );
if ( $page['updated'] ) {
$page['updated'] = new DateTime( $page['created'] );
}
}
然后在我显示这个的 show.php
中,我有这段代码来格式化日期。
Created on <?php echo $page['created']->format('jS M, Y'); ?>
现在从我的 show.php
中删除它不会做任何事情,因为那不是包含错误的地方 - 但我想我会向你们展示我正在努力实现的目标。
就像我说的,这是一个非常基本的 CMS 网站,我是通过关注 tutorial on YouTube 创建的我已经准确地复制了他的代码,他没有出错,所以我确定这一定是我找不到的错字。
最佳答案
这是因为php配置中没有设置时区。
将以下代码行添加到 php.ini 文件的顶部
date.timezone = "US/Central"
并重启网络服务器
或
您也可以使用以下函数通过 php 脚本设置它:
date_default_timezone_set('America/Los_Angeles');
不要忘记重新加载/重启 apache 服务器
关于php - 未捕获的异常 'Exception' 消息为“DateTime::__construct():,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35455315/