Mysql比较存储到今天的日期

时间:2015-05-05 07:09:13

标签: php mysql

我想通过我的数据库dateandtime并将它们与当前日期和时间进行比较,并说出哪一个更大。

<?php
include_once("db.php");
$date = new DateTime();
//echo $date->format('Y-m-d H:i:s')

$query = "SELECT timedate, email  FROM mailer";
$result = mysql_query($query);
echo "<table>";
while($row = mysql_fetch_array($result)){
       $tot = $row['timedate'];
       $ema = $row['email'];
    if($tot > $date) {
    //echo "<tr><td>" .$row['timedate']."</td><td>";
    echo"database dates higher then now dates" . "<br>";
    echo "<tr><td>" .$row['email']."</td><td>" ."<br>";
   echo "<tr><td>" .$row['timedate']."</td><td>" ."<br>";
}
else {
    echo"database dates lower then now dates" . "<br>";
    echo "<tr><td>" .$row['email']."</td><td>". "<br>";
       echo "<tr><td>" .$row['timedate']."</td><td>" ."<br>";
}

}
mysql_close();
?>

以下是我得到的测试输出:

database dates lower then now dates
barmaleyalex@gmail.com  
2015-05-04 08:00:00 
database dates lower then now dates
vladtheimpalor25@gmail.com  
2015-05-04 00:00:00 
database dates lower then now dates
barka@gmail.com 
2015-05-30 00:00:00

正如您所看到的最后一个条目错误,它设置为可能30,因此它应该高于现在的日期。我的猜测是我没有正确使用当前日期,我需要格式化它。

4 个答案:

答案 0 :(得分:5)

由于PHP中timedatedatetime,您只需使用strtotime

if(strtotime($tot) > time()){

}else{

}

答案 1 :(得分:1)

首先应将数据库结果格式化为日期,然后再进行比较。

<?php
include_once("db.php");
$date = new DateTime();
//echo $date->format('Y-m-d H:i:s')

$query = "SELECT timedate, email  FROM mailer";
$result = mysql_query($query);
echo "<table>";
while($row = mysql_fetch_array($result)){
       $tot = DateTime::createFromFormat("Y-m-d H:i:s",$row['timedate']);
       $ema = $row['email'];
    if($tot > $date) {
       echo"database dates higher then now dates" . "<br>";
       echo "<tr><td>" .$row['email']."</td><td>" ."<br>";
       echo "<tr><td>" .$row['timedate']."</td><td>" ."<br>";
    } else {
       echo"database dates lower then now dates" . "<br>";
       echo "<tr><td>" .$row['email']."</td><td>". "<br>";
       echo "<tr><td>" .$row['timedate']."</td><td>" ."<br>";
    }

}
mysql_close();
?>

答案 2 :(得分:0)

你不能用这种方式比较日期。您必须先将它们转换为timestamp。尝试使用 -

if(strtotime($tot) > strtotime($date))

答案 3 :(得分:0)

if($tot > $date)你无法直接比较数据时间值, 你必须首先转换他们两个时间值。

$dateTick = strtotime($date); $totTick = strtotime($tot);

之后只比较

if($dateTick < $totTick)