PHP имеет дело с MySQL DATETIME - PullRequest
       15

PHP имеет дело с MySQL DATETIME

0 голосов
/ 05 января 2012

У меня есть таблица, в которой отображаются последние заметки администратора.Я показываю только последние 3 заметки.Я храню DATETIME в базе данных.Что я хочу сделать, так это сказать: , если это время даты меньше 3 дней, тогда отобразите этот НОВЫЙ текст .

Теперь, если все 3 заметки находятся в одном дне,хочу, чтобы только НОВЫЙ текст показывал НОВЫЙ, а не все 3.

Вот мой PHP:

<?php
    if ($stmt = $mysqli->prepare("SELECT note, date_posted, admins.first_name, admins.last_name FROM admin_notes INNER JOIN admins ON admin_notes.admin_id = admins.admin_id ORDER BY date_posted DESC LIMIT 3")) {

        $stmt->execute();
        $stmt->bind_result($note_text, $note_date, $note_fname, $note_lname);
        $stmt->store_result();

        while ($stmt->fetch()) {
            echo "<tr><td class=\"full\">$note_text<br /><span class=\"from\">".timesince($note_date)." by <strong>$note_fname $note_lname</strong></span></td></tr>";
        }
    }
?>

Может кто-нибудь помочь мне достичь этого?

1 Ответ

3 голосов
/ 05 января 2012
$past = new DateTime('-3 days');

// later
$note_datetime = new DateTime($note_date);

if ($note_datetime >= $past) echo 'new';

Вдохновленный (пока что удаленным) ответом rkosegi: Вы можете изменить запрос на

SELECT note, date_posted, admins.first_name, admins.last_name, (DATEDIFF(NOW(),`date_posted`) < 3) AS isNew FROM [..]

Теперь вы получите новую "строку" isNew, то есть 1одер 0.

...