好吧基本上我试图将今天的日期与数据库日期进行比较,并确定今天的日期是否为>然后是数据库中的一个日期。但无论从数据库中获取什么日期<或者>与今天相比,结果总是如此。
请一些请求查看我的代码,并指出任何潜在的错误请
PHP
$timestamp = date("Y-m-d");
$sql="SELECT enddate FROM campaigns WHERE id=".$data['camp'];
$query = mysqli_query($db, $sql);
while($result = mysqli_fetch_assoc($query)){
if($timestamp > $result){
echo "<script type='text/javascript'>alert('This Workshop Has Expired');</script>";
exit;
}else{
echo "<script type='text/javascript'>alert('Thank You For Registering');</script>";
exit;
}
}
答案 0 :(得分:3)
尝试例如:
$var = "2010-01-21 00:00:00.0"//date from DB
strtotime($var);
将其转换为时间值,并且:
time() - strtotime($var);
为您提供自$var
要检查$var
是否在最后一天内,请尝试:
if((time()-(60*60*24)) < strtotime($var))
这就是全部! :)
答案 1 :(得分:1)
if($timestamp > $result['enddate']){
$ result是一个数组,由$result = mysqli_fetch_assoc($query)
调用。 mysqli_fetch_assoc返回一个数组,其中行的列名称为键,每个字段的内容为值。
答案 2 :(得分:1)
问题是数据库中的“enddate”不是数字,而是字符串。
您应该将其转换为数字:
$now = time();
$sql="SELECT enddate FROM campaigns WHERE id=".$data['camp'];
$query = mysqli_query($db, $sql);
while($result = mysqli_fetch_assoc($query)){
$db = strtotime($result);
if($now > $db) {
// expired
echo "<script type='text/javascript'>alert('This Workshop Has Expired'); </script>";
exit;
}
else {
// not expired
echo "<script type='text/javascript'>alert('Thank You For Registering');</script>";
exit;
}
}