比较2个时间戳值并对结果执行某些操作

时间:2014-06-03 17:08:49

标签: php mysql datetime

我是PHP的新手。我开始了一个网站,产品竞标项目,我坚持这件事.. 我想存储将新产品添加到页面的实际日期和时间,以及24小时后的另一个日期和时间(截止日期)。 我在adauga_admin.php页面(将产品详细信息添加到mysql表的页面)中完成了此操作。

adauga_admin.php:

<?php
include('connect.php');

$data=date('Y-m-d H:i:s');
$deadline=date('Y-m-d H:i:s',strtotime('+24 hours'));

// protejam impotriva injectiei de cod
$t = mysqli_real_escape_string($con, $_POST['t']);
$s = mysqli_real_escape_string($con, $_POST['s']);
$p = mysqli_real_escape_string($con, $_POST['p']);
$d = mysqli_real_escape_string($con, $_POST['d']);

$sql="INSERT INTO produse (titlu, stare, pret, descriere, data, deadline)
VALUES ('$t', '$s', '$p', '$d', '$data', '$deadline')";
$rez = mysqli_query($con,$sql);

    if($rez) {
        header("location:produse_user.php");
    }

    else {
        echo "Probleme la adaugare";
    } 
mysqli_close($con);
?>

这是包含产品的表格:

id | titlu | stare | pret |  descriere |        data         |      deadline       |
___________________________________________________________________________________
11 |  asd  |  asd  |  140 |    asd     | 2014-06-03 19:02:47 | 2014-06-04 19:02:47 |

这是我向用户展示产品的地方。从这里他们可以竞标产品

produse_user.php:

<?php
include('connect.php');
?>

<?php

$result = mysqli_query($con,"select * from produse");

while ($row = mysqli_fetch_array($result))
{
?>

<div class="produse"> 
<div class="produse-header"> 
<h4><?php echo $row['titlu'];?></h4>
<h5><?php echo $row['stare'];?></h5>
</div>
<div class="produse-continut">
<textarea readonly><?php echo $row['descriere'];?></textarea>
</div>
<div class="produse-pret"> 
<p><?php echo $row['pret'];?> lei</p>
</div>
<div class="produse-buton"> 
<a href="liciteaza.php?id=<?php echo $row['id']; ?>">Liciteaza</a>
</div></div>

<?php 
} 
mysqli_close($con);
?>

我的目标是制作一个脚本,显示在每个产品的产品页面上,如果仍然可用或已过期。 我想这是这样的,但不知道该怎么做..

if ($data > $deadline) {
   echo "Expired";
}
else {
   echo "Available";
}

2 个答案:

答案 0 :(得分:2)

您可以使用以下查询或变体。

select * from produse WHERE deadline >= NOW()

从结果集中排除截止日期已经过去的行。

你也可以做像

这样的事情
select * from produse WHERE deadline >= NOW() - INTERVAL 2 HOUR
                        AND deadline < NOW()

显示两小时前和现在截止日期之前的产品。

答案 1 :(得分:0)

试试这个:

<?php
include('connect.php');
?>

<?php

$data = date('Y-m-d H:i:s');
$status = "";

$result = mysqli_query($con,"select * from produse");

while ($row = mysqli_fetch_array($result))
{

if ($data > $row['deadline']) {

    $status = "Expired";
} else {

    $status = "Available";
}   

?>

<div class="produse"> 
<div class="produse-header"> 
<h4><?php echo $row['titlu'];?></h4>
<h5><?php echo $row['stare'];?></h5>
<h5><?php echo $status;?></h5>
</div>
<div class="produse-continut">
<textarea readonly><?php echo $row['descriere'];?></textarea>
</div>
<div class="produse-pret"> 
<p><?php echo $row['pret'];?> lei</p>
</div>
<div class="produse-buton"> 
<a href="liciteaza.php?id=<?php echo $row['id']; ?>">Liciteaza</a>
</div></div>

<?php 
} 
mysqli_close($con);
?>