我还有更多的PHP问题,但这次使用的是DateTime类。
这是我实际代码的一部分:
//setup $dbc and $dbcOptions
function test($database, $databaseoptions, $termcode, $department)
{
$tsql = "SELECT StartDate, StopDate
FROM CourseRecords
WHERE TermCode = '" .$termcode. "' AND Department = '" .$department. "';";
$params = array();
$stmt = sqlsrv_query($database, $tsql, $params, $databaseoptions); //---Query ALL the things!!!
if( $stmt === false ) {
echo 'This page is broken<br />';
die( print_r( sqlsrv_errors(), true));
}
return $stmt;
}
$results = test($dbc, $dbcOptions, "142s", "CSC");
$rows = sqlsrv_num_rows($results);
echo "rows = " .$rows;
for ($i = 0; $i < $rows; $i++)
{
if(sqlsrv_fetch($results) !== false)
{
$startdate = date_format(sqlsrv_get_field($results, 0), "Y-m-d"); //line 72
$stopdate = date_format(sqlsrv_get_field($results, 1), "Y-m-d"); //line 73
}
}
我的php-errors.log
文件中出现以下错误:
[13-Nov-2014 17:05:19 UTC] PHP警告:date_create():依赖系统的时区设置是不安全的。您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们选择了美国/芝加哥&#39;对于&#39; -6.0 /没有DST&#39;而是在第72行的E:\ inetpub \ wwwroot \ directory \ searchtest.php
[13-Nov-2014 17:05:19 UTC] PHP警告:date_create():依赖系统的时区设置是不安全的。您必需使用date.timezone设置或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们选择了美国/芝加哥&#39;对于&#39; -6.0 /没有DST&#39;而是在第73行的E:\ inetpub \ wwwroot \ directory \ searchtest.php
当我执行此操作时,创建$startdate
和$stopdate
作为DateTime对象会产生相同的错误:
$timezone = new DateTimeZone("America/Chicago");
$startdate = new DateTime("2012-12-12", $timezone);
$stopdate = new DateTime("2012-12-12", $timezone);
// get $results and find $rows and junk
$startdate = sqlsrv_get_field($results, 0);
$stopdate = sqlsrv_get_field($results, 1);
无论如何应该起作用,因为你们曾帮助我解决以前的问题。
所以我的问题是:为什么这会因500错误而失败,我该怎么做才能纠正它?
答案 0 :(得分:1)
将我的评论转换为答案:
尝试在脚本开头添加date_default_timezone_set('America/Chicago');
。