使用date()函数我总是得到相同的日期,为什么?

时间:2011-02-25 16:23:46

标签: php function variables date

我总是使用以下日期函数获得2011年2月28日:

$time = $row['time'];
$date = date("F t Y",$time);

没有一个时间戳是在2月28日创建的(显然)但是这里仍然是代码的其余部分:

$sql = "SELECT * FROM `posts` WHERE `approved`='1' ORDER BY time DESC";
$res = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_assoc($res)){
//Post//

$title = $row['title'];
$content = $row['content'];
$time = $row['time'];
$date = date("F t Y",$time);
$creatorid = $row['uid'];
$creator = username($creatorid);

echo "<div class=\"post\">
        <h1>".$title."</h1>
            <p class=\"entry\">".$content."</p>
            <div class=\"byline\">
                <p class=\"info\">
                Posted ".$date." By ".$creator."
                </p>
                <p class=\"links\"><a href=\"#\">Read More</a>&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"#\">Comments</a></p>
            </div>
    </div>";
}

由于 卡梅伦

2 个答案:

答案 0 :(得分:10)

问题出在这里:

$date = date("F t Y",$time);

这给出了输出:    “月份名称”“该月份的天数(2月份为28天,1月份为31”和“年份”。

你应该改为:

$date = date("F j Y",$time);

OR

$date = date("F d Y",$time);

请参阅http://php.net/manual/en/function.date.php

答案 1 :(得分:1)

$row['time']的价值是多少?它很可能不是PHP支持的时间值,而是datetime MYSQL类型。

改为使用:

$time = strtotime($row['time']);