使用PHP(sqlsrv扩展)将MSSQL日期时间打印为html时出现问题
我有一个灵活的代码块,允许我将查询结果打印到一个简单的html表中。但是,当该表包含“datetime”类型的字段时,print()函数不起作用,我的循环结束 在过去,使用PHP和MySQL(与我现在使用的Microsoft SQL Server相反)打印日期没有问题,所以我不确定我现在缺少了什么 代码如下:使用PHP(sqlsrv扩展)将MSSQL日期时间打印为html时出现问题,php,sql-server,Php,Sql Server,我有一个灵活的代码块,允许我将查询结果打印到一个简单的html表中。但是,当该表包含“datetime”类型的字段时,print()函数不起作用,我的循环结束 在过去,使用PHP和MySQL(与我现在使用的Microsoft SQL Server相反)打印日期没有问题,所以我不确定我现在缺少了什么 代码如下: // $row is the current row. // $nkeys is the array of (String) keys that correspond to columns
// $row is the current row.
// $nkeys is the array of (String) keys that correspond to columns in the table.
do {
print ("<tr>\n");
foreach($nkeys as $k) {
echo ("<td>$row[$k]</td>");
}
print ("</tr>\n");
} while ($row = sqlsrv_fetch_array($stmt));
/$row是当前行。
//$nkeys是与表中的列相对应的(字符串)键数组。
做{
打印(“\n”);
foreach($nkeys为$k){
回声(“$row[$k]”);
}
打印(“\n”);
}而($row=sqlsrv_fetch_array($stmt));
除了print()或echo之外,是否有其他特殊函数可以正确打印日期?SQLSRV扩展返回对象。只要你喜欢:
if( !is_null($row[$k]) ){
echo $row[$k]->format('r');
}
在您正在使用的过程界面中,您还可以通过提供(此选项在PDO界面中不可用)来禁用该功能,但通常没有理由这样做。在使用SQLSRV时,您不能使用以下内容:
date('d/m/y', strtotime($row['ActivityDate']))
相反,您必须使用:
date_format($row['ActivityDate'], 'd/m/y')
尽管可以通过SQLSRV更改返回日期时间对象的行为。这可以通过在连接选项中保持returnDateSasStringTRUE来实现。按如下所示更改连接代码将实现以下目的:
$link = sqlsrv_connect( $db_server_name, array( "UID"=>$db_user,
"PWD"=>$db_pass,
"Database"=>$db_name,
"ReturnDatesAsStrings"=>true
));
使用此命令,您现有的代码
echo($row[$k])代码>将返回值,无需任何其他解决方法。如果你有很多点应用“->格式('r')”, ,在使用JQGrand中的日期字段时,在连接字符串中有这一点非常重要。p>
"ReturnDatesAsStrings"=>true
好东西,谢谢你,伊格什先生