我正在尝试编写一个PHP脚本,我想从数据库表中提取日期字段,存储此日期将其与今天进行比较。要查看数据。数据库已经过或未与今天相比。
PHP
$sql="SELECT enddate FROM campaigns WHERE id=".$data['camp'];
$result = mysqli_query($db, $sql);
while($info = mysqli_fetch_assoc($result)){
if(date("Y-m-d") > $result){
exit;
echo "Success";
}
elseif(date("Y-m-d") < $result){
return true;
echo "Failure";
}
}
答案 0 :(得分:2)
使用strtotime()
while($info = mysqli_fetch_assoc($result)){
if(strtotime(date("Y-m-d")) > strtotime($result)){
exit;
echo "Success";
}
elseif(strtotime(date("Y-m-d")) < strtotime($result)){
return true;
echo "Failure";
}
}
答案 1 :(得分:1)
你必须这样做:
if(date("Y-m-d") > $info['enddate']) {
答案 2 :(得分:0)
你可以让MySQL担心它。
SELECT DATEDIFF(NOW(),enddate) FROM campaigns WHERE id=".$data['camp']
这将返回两个日期之间的天数。 See the manual for DATEDIFF
答案 3 :(得分:0)
您可以使用以下查询:
$sql="SELECT (CASE WHEN DATE(NOW()) > enddate THEN 'success' ELSE 'failed' END) AS mystatus FROM campaigns WHERE id=".$data['camp'];
然后您只需要从查询中调用 mystatus 列。
答案 4 :(得分:0)
我花了很多时间来比较日期,我找到了像这样的解决方案
始终将格式设置为日期(&#39; Y-m-d&#39;)
$dateTo='2016-08-07';
if(date("Y-m-d", strtotime($dateTo)) > date('Y-m-d')){
echo 'yes';
}else{
echo 'no';
}