在一个php foreach循环中的TIMESTAMPDIFF

时间:2015-09-09 10:30:18

标签: php mysql

我在PHP中生成一个表,从数据库中提取数据,列出学校项目的电影。但我还想列出电影发行前的剩余天数。

我一直在MySQL工作台中使用以下查询来计算个人ID的日期之间的天数。但是我不知道如何在我的foreach循环中输出这些数据。

SELECT TIMESTAMPDIFF(day, CURDATE(), 
(SELECT `start` from Movie WHERE id = 1))

我宁愿不改变表的生成方式,有人有解决方案吗?希望我的问题不要太模糊。

变量$ res是数据库中每部电影的二维数组。

public function getTable($res, $hits, $page) {      

    $max = $this->search->GetMaxPages();

    $hitsPerPage = $this->getHitsPerPage(array(2, 5, 10), $hits);
    $navigatePage = $this->getPageNavigation($hits, $page, $max);

    $html = "<div>{$hitsPerPage}</div><table>";
    // The table head
    $html .= "<tr>
        <th></th>
        <th>Title " . $this->orderby('title') . "</th>
        <th>Genre</th>
        <th>Starts " . $this->orderby('start') . "</th>
        <th>Days left</th>
    </tr>";
    // The table rows
    foreach($res AS $key => $val) {
        $html .= "<tr>
            <td class='table-image'><a href='object.php?id={$val->id}'><img src='img.php?src={$val->image}&sharpen&amp;width=120&amp;' alt='{$val->title}' /></a></td>
            <td><a href='object.php?id={$val->id}' class='table-title'>{$val->title}</a></td>
            <td>{$val->genre}</td>
            <td>{$val->start}</td>
            <td></td>
        </tr>";
    }

    $html .= "</table><div class='pagenav'>" . $navigatePage . "</div>";
    return $html;
}

1 个答案:

答案 0 :(得分:0)

做一点数学。

将其置于foreach($res AS $key => $val) {

行的正下方
$starttime = $val->start; // get our start time
$start = strtotime("$starttime"); // get epoch time of start time

$datenow = date('Y-m-d H:i:s', time()); // time now
$date = strtotime("$datenow"); // get epoch time for right now

$timeremaining = $start- $date; // how much time do we have left

$days = $timeremaining / 86400; // number of seconds in a day

现在你所要做的就是重写你希望它显示的html放置echo number_format($days);

快乐的编码!