繁体   English   中英

如何按DD / MM / YY格式按日期输出数据库条目?

[英]how to output database entries by date in DD/MM/YY format?

我正在使用以下代码输出数据库条目:

<div id="main_area">
<div  id="container">
<div id="php_container" role="main">
<?php
include('connect_it.php');
$sqlget= "SELECT * FROM dbtablename";
$sqldata= mysqli_query ($dbcon,$sqlget) or die('this is an error');
while ($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)) {
echo $row[ 'li' ] ;
}
?>
</div>
</div>
</div>

在页面加载时,我希望按日期(从最近到最近)排序的数据库条目存储在名为'added'的mysql字段中,格式为DD / MM / YY。

我不确定它是否可以完成,但作为另一种选择,日期是在<span id="date">date: 27/11/11</span>定义的<span id="date">date: 27/11/11</span>所以也许这个范围可以使用订购数据?

所以我的问题是,如何按照从最近到最近的日期排序初始输出?

我努力了:

$sqlget= "SELECT * FROM dbtablename ORDER BY added ASC";

但我得到了意想不到的结果

谢谢。

如果您添加的列是DATE,DATETIME或TIMESTAMP类型,您可以像这样使用DATE_FORMAT,

$sqlget= "SELECT *, DATE_FORMAT(added,'%d/%m/%y') as addedFormated FROM dbtablename ORDER BY added ASC";

请参阅https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

否则,如果它是一个字符串尝试(虽然它确实应该是DATE类型),

$sqlget= "SELECT *, STR_TO_DATE(added,'%d/%m/%y') as addedFormated FROM dbtablename ORDER BY STR_TO_DATE(added,'%d/%m/%y') ASC";

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

首先是一些小事(还有更多), <span id="date">...</span>无效,因为id属性应该是唯一的,使用<span class="date">...</span>而不是。 浏览器会渲染它,甚至在大多数情况下都能正确渲染它,但不能正确使用“id”属性。

您是否需要选择查询中的所有列? 如果没有,只选择您需要的。

您想要的查询是:

SELECT * FROM dbtablename ORDER BY added DESC

但是这将选择所有行和所有列。 现在是棘手的部分。 您说您的数据以'dd / mm / yyy'格式存储,因此此查询无法正常工作,因为每年每月约有30天。 您需要使用datetime列类型,它将以yyyy-mm-dd 00:00:00格式存储日期数据。 如您所见,这将纠正您的所有问题。

或者,正如其他人所说,使用STR_TO_DATE(added,'%d/%m/%y')来提取数据。

然后,在PHP中提取的数据上,使用(其中$var是您的日期值):

echo date('d/m/y',strtotime($var));

希望有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM