我最近将我的客户端网站上传到临时服务器上,这样他们就可以在我调整设计时开始使用数据。
当我启动时,我的一个滑块和一个页面完全崩溃[注意:这只发生在服务器端;我的localhost网站继续完美工作]。
我把它缩小到我使用date_create_from_format()函数,因为我在两个页面上使用它,当我删除持有该位的php时,该网站工作正常。我已经搜索了我的文件中任何遗漏的分号或括号,我找不到任何明显的错误。这是我在本地主机上的代码。
<p>
<?php
$end = date_create_from_format('Ymd',$ending_date);
$start = date_create_from_format('Ymd',$starting_date);
echo "<span class='month'>" . $start->format('F') . "</span>";
echo " ";
echo "<span class='day'>" . $start->format('j') . "</span>";
echo ", ";
echo "<span class='year'>" . $start->format('Y') . "</span>";
echo " - ";
echo "<span class='month'>" . $end->format('F') . "</span>";
echo " ";
echo "<span class='day'>" . $end->format('d') . "</span>";
echo ", ";
echo "<span class='year'>" . $end->format('Y') . "</span>";
echo ", $location";
?>
</p>
我也尝试将它从对象转换为程序函数(见下文),但结果完全相同。
<p>
<?php
$end = DateTime::createFromFormat('Ymd',$ending_date);
$start = DateTime::createFromFormat('Ymd',$starting_date);
echo "<span class='month'>" . date_format($start,'F') . "</span>";
echo " ";
echo "<span class='day'>" . date_format($start,'j') . "</span>";
echo ", ";
echo "<span class='year'>" . date_format($start,'Y') . "</span>";
echo " - ";
echo "<span class='month'>" . date_format($end,'F') . "</span>";
echo " ";
echo "<span class='day'>" . date_format($end,'d') . "</span>";
echo ", ";
echo "<span class='year'>" . date_format($end,'Y') . "</span>";
echo ", $location";
?>
</p>
感谢“Sysix”提供有关分配时区的答案。我做了以下调整(见下文),但问题仍然存在。
<?php
$end = DateTime::createFromFormat('Ymd', $ending_date, new DateTimeZone('America/Toronto'));
$start = DateTime::createFromFormat('Ymd', $starting_date, new DateTimeZone('America/Toronto'));
?>
有人有什么想法吗?
答案 0 :(得分:0)
我找到了一个通知,DateTime :: createFromFormat忽略了设置的TimeZone。您必须为对象设置显式时区。
http://php.net/manual/de/datetime.createfromformat.php#116027
答案 1 :(得分:0)
来自您的评论:您的PHP版本是5.2.17
但是从PHP 5.3起可以使用DateTime :: createFromFormat
查看文档:{{3}}