Используя функцию date (), я всегда получаю одну и ту же дату, почему? - PullRequest
1 голос
/ 25 февраля 2011

Я всегда получаю 28 февраля 2011 года, используя следующую функцию даты:

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

Ни одна из меток времени не была создана 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 ]

10 голосов
/ 25 февраля 2011

Проблема здесь:

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

это дает вывод: «Название месяца» «Количество дней в этом месяце (в феврале это 28, а в январе - 31» и «год».

Вы должны изменить его на:

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

ИЛИ

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

См. http://php.net/manual/en/function.date.php

1 голос
/ 25 февраля 2011

Какое значение $row['time']?Есть большая вероятность, что PHP поддерживает не значение времени, а тип datetime MYSQL.

Вместо этого используйте:

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