我想通过我的数据库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,因此它应该高于现在的日期。我的猜测是我没有正确使用当前日期,我需要格式化它。
答案 0 :(得分:5)
由于PHP中timedate
为datetime
,您只需使用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)