在使用PHP和MySQL中的日期时,我总是感到困惑。我查看了其他帖子,但无法找到解决方案,
我有一个简单的博客存储在数据库中,当查询时回显记录。我得到多行有多个条目,但所有日期都相同。
日期与MySQL时间戳存储在名为' TimeStamp'的列中。并在数据库中以这种方式格式化: 2011-12-29 21:16:55(例如)。
以下是查询:
$set_select_sql = "SELECT *
FROM `table`
ORDER BY `table`.`TimeStamp` DESC
LIMIT 0 , 30";
$set_query = mysql_query($set_select_sql);
$HowMany=mysql_num_rows($set_query);
$time = date("g:i a", strtotime(mysql_result($set_query,0,'TimeStamp')));
$date = date("F j, Y ", strtotime(mysql_result($set_query,0,'TimeStamp')));
$blogpost = mysql_result($set_query,0,'blogpost');
mysql_data_seek($set_query, 0);
$r = 0;
while ($r <= $HowMany) {
$row = mysql_fetch_assoc($set_query);
if ($row == FALSE) {
} else {
extract($row);
echo "It was $time on $date when I posted this.<br/>";
echo "$blogpost"
}
$r++
为什么我只有一个约会? 我错过了什么?
谢谢!
答案 0 :(得分:2)
这是因为您输出的$time
和$date
在行的循环中提取了 NOT ,但就在它之前。
解决方案是在循环中获取这些变量:
while ($row = mysql_fetch_assoc($set_query)) {
$time = date("g:i a", strtotime($row['TimeStamp']));
$date = date("F j, Y ", strtotime($row['TimeStamp']));
$post = $row['blogpost'];
echo "It was " . $time . " on " . $date . " that I posted this. <br />";
echo $post;
}
答案 1 :(得分:0)
您只能获得此行找到的第一行的日期:
$date = date("F j, Y ", strtotime(mysql_result($set_query,0,'TimeStamp')));
要获取每一行的日期,您需要在while
循环中获取日期,而不是之前。