[英]PHP format date returning duplicates
我试图从数据库中获得DISTINCT的月份和年份。 格式化日期并将其放入下拉列表中。 但我得到所有记录为1月14日
这是我的代码:
<select name="month">
<?php
$sSDate = "SELECT DISTINCT year(eventStartDate), month(eventStartDate) FROM te_events GROUP BY eventStartDate ORDER BY eventStartDate ASC";
$qrSDate = mysql_query($sSDate) or die (mysql_error());
while($rowSDate = mysql_fetch_assoc($qrSDate))
{
$s_event_start_month = $rowSDate ['month(eventStartDate)'];
$s_event_start_year = $rowSDate ['year(eventStartDate)'];
$date = date("M", strtotime($s_event_start_month)). date("y", strtotime($s_event_start_year));
echo '
<option value="'.$date.'">
'.$date.'
</option>
';
}
?>
</select>
我不知道我是否完全理解问题,但请尝试以下操作:
$date = date("M y", strtotime($s_event_start_month.' '.$s_event_start_year));
要么
$date = date("M y", mktime(0, 0, 0, $s_event_start_month, 1, $s_event_start_year));
问题是您的查询:
SELECT DISTINCT year(eventStartDate)
, month(eventStartDate)
FROM te_events
GROUP BY eventStartDate
ORDER BY eventStartDate ASC
由于不同的年份和月份是单独的字段,因此获得的组合数量超出了您的期望。 如果您希望使用不同的年份-月份,这更有意义,那么您需要这样的事情:
select distinct to_char(eventStartDate, 'yyyy-mm') ym
from te_events
where whatever, maybe
order by ym
您的问题未指定数据库引擎,因此为了这个答案,我选择了oracle。 不同的数据库具有不同的方式来获得相同的结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.