好的,基本上我正在尝试将今天的日期与数据库日期进行比较,并确定今天的日期是否为>,然后是数据库中的日期之一。但是无论从datatabase<与今天相比,结果总是正确的。
有人能看看我的代码并指出任何潜在的错误吗?请
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;
}
}
例如:
$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))
仅此而已!:)
if($timestamp > $result['enddate']){
$result是一个数组,由$result = mysqli_fetch_assoc($query)
调用。mysqli_fetch_assoc返回一个数组,其中行的列名为键,每个字段的内容为值。
问题是数据库中的"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;
}
}