【发布时间】:2016-11-13 19:13:15
【问题描述】:
这有点与Access DateTime->date in php 相关,但实际上是另外一回事。我有一些从 SQL 服务器获取 DateTime 对象的 php。我使用转换它
echo $mydate->format('Y-m-d H:i:s');
所以它只是一个字符串,或者至少我认为它是。 (我什至使用显式类型转换来确保)。
这是代码,
} else {
echo "<br/>object ";
$dt = (string) $row[$column]->format('Y-m-d H:i:s');
$this->retVal["nonEmpty"] = true;
$this->retVal["value"] = (string) $dt;
echo $this->retVal["value"]; //Returns a string, no issue.
}
当“字符串”从类中传回时,就会出现问题。
$convert = new DataConv;
$convert->conv($newConnectionThree, $fieldNames[$cnt1][$cnt2]["Type"],$fieldNames[$cnt1][$cnt2]["Size"], $tableNames[$cnt1], $columnNames[$cnt1][$cnt2]);
$fieldNames[$cnt1][$cnt2]["Type"] = $convert->type;
$returned = $convert->retVal;
echo $returned["value"]; //Returns error "Catchable fatal error: Object of class DateTime could not be converted to string".
var_dump($returned["value"]); //Shows Datetime object.
现在它又回到了 Datetime 对象。我看不出有任何理由将其转换回来。我只是想知道是否有人至少可以回答为什么会发生这种情况,但是解决方案会有所帮助。没有在课堂之外进行这种转换的任何事情。
【问题讨论】:
-
您能展示一下您的 DataConv 类的完整代码吗?
-
全班209行。基本上,它所做的是将 META DATA 中从 SQL 返回的数据类型的数值并将其转换为其字符串值(“-9”类型现在将存储为“N VarChar”)并将其存储在变量中可以在类外访问,然后获取该表的第一行并将值存储在可以在类外访问的数组中。
标签: php date datetime object properties