首页 > 解决方案 > ReturnDatesAsStrings=>true 返回带小数和零的时间戳

问题描述

我正在使用PHP 7.2MS SQL ServerfpdfphpSpreadsheet来创建我的数据的 PDF 和 Excel 报告。最初,我无法在报告中返回时间戳(日期)字段,但"ReturnDatesAsStrings"=>true在我的connection.php中添加解决了这个问题。

现在的问题是报告上的日期字段添加了小数和零并显示为2018-03-01 16:43:19.0000000. 我怎样才能停止添加.0000000?我不确定它是否还需要与 fpdf 和 phpSpreadsheet 一起使用变得更加复杂包含了该信息以防万一。

更新: Zhorov 的第一个答案是正确的。我"ReturnDatesAsStrings"=>trueconnection.php中删除并且 phpSpreadsheet 文件工作得很好!在 fpdf 文件中,我必须添加 '$date_as_string = date_format($data['created_date'], 'Ymd H:i:s');' 然后PDF也可以工作。

最终解决方案: NULL 值导致了问题,但 Zhorov 的修复工作有效。不得不添加$date_as_string = is_null($row['DateField']) ? '' : date_format($row['DateField'] , 'Y-m-d H:i:s');

标签: phpsql-serverfpdfsqlsrvphpspreadsheet

解决方案


不是 PHP 人,但在 SQL Server 中,您可以将 datetime 值转换为string

例子

Select ViaConvert = convert(varchar(19),getdate(),120)
      ,ViaFormat  = format(getdate(),'yyyy-MM-dd HH:mm:ss')

退货

ViaConvert             ViaFormat
2018-09-13 09:35:12    2018-09-13 09:35:12

请注意:只是一个警告,format()有一些很棒的功能,但它不被称为表演者。


推荐阅读