【发布时间】:2020-02-21 20:21:11
【问题描述】:
我是 PHP 新手,我正在尝试从我的数据库中检索日期并将其格式化为:yyyy-mm-dd hh:mm:ss 到此格式:dd-mm-yyyy hh:mm:ss。我的第一个想法是在存储到服务器之前转换格式,但我读过这是一种不好的做法,所以我在输出数据时尝试这样做。
关键是,它不起作用,当我使用 Format 函数时,它会更改格式,但方式错误。
在这个例子中,我使用的是 'MM/dd/yyyy' 格式字符串,但我已经尝试了不同的格式,并且输出总是相同的。
表格列是日期时间格式,但我已经尝试过文本和 varchar 格式,在第一种情况下,输出与日期时间格式的输出相同,在第二种情况下,我只收到前四个数字。
还有一件事,我正在使用 PDO。
这是我的查询:
public function funcaoTesteGetValues() {
$query = "SELECT teste_data,FORMAT(teste_data,'MM/dd/yyyy') AS 'nova_data' FROM teste";
$stmt = $this->conexao->prepare($query);
$stmt->execute();
return $stmt->fetchAll(\PDO::FETCH_OBJ);
}
输出如下:
[teste_data] => 2015-12-04 04:04:00 => 数据库格式(日期时间)
[nova_data] => 20,151,204,040,400 => 输出格式
我需要什么:
【问题讨论】:
-
为什么不将其作为日期返回并用 PHP 格式化?
-
您确定您使用的是 SQL Server 吗?输出看起来更像 MySQL FORMAT() 输出而不是 SQL Server 的输出。
-
@Berg_Durden 不,我的问题与您正在使用的数据库服务器有关。您在标题中提到了 SQL Server,但您得到的输出看起来不像预期的那样。
-
好的,不用担心。当有关于 SQL 的问题时,请确保使用正确的标签。不同系统(MySQL、SQL Server、pgSQL...)之间的答案通常会有所不同
-
@Berg_Durden 那是一个人犯错误的时候,一个人学会了:)
标签: php mysql sql datetime format