9

我无法从datetimeMySQL 表的字段中仅将日期分配给 php 变量。我正在使用PHP 4,我知道如何在 PHP 5 中做到这一点。

有人可以帮助了解以下 php 代码中缺少的内容。

$dc = mysql_query("SELECT * FROM INVHDR WHERE Invdate BETWEEN '2011-04-01' AND '2012-03-31'");
while ($dc2 = mysql_fetch_assoc($dc)) {
    $invno      = $dc2['Invno']; // Here Invno is a datetime field type
    $invdat3    = $dc2['Invdate'];
    $date_array = explode("-", $invdat3);
    $invdat     = sprintf('%02d/%02d/%4d', $date_array[2], $date_array[1], $date_array[0]);
}
4

3 回答 3

34

如果您只想显示日期部分,可以使用DateTime该类:

echo DateTime::createFromFormat("Y-m-d H:i:s", "2012-12-24 12:13:14")->format("d/m/Y");
// 24/12/2012

//编辑双回声错字。

于 2012-12-24T10:33:12.827 回答
5

当涉及到日期操作时,我发现一个链接非常有用:http: //dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

在那里可以很容易地找到解决方案:

SELECT *, DATE(Invdate) as Inv_date ...
于 2012-12-24T10:35:11.440 回答
3

直接在 MySQL 中执行:

select DATE_FORMAT('2012-12-24 12:13:14', '%Y/%m/%d')

因此,您的查询将如下所示:

SELECT DATE_FORMAT(Invdate, '%Y/%m/%d') FROM INVHDR WHERE Invdate BETWEEN '$startdat' AND '$enddat'
于 2012-12-24T10:35:51.450 回答