PHP比较日期

时间:2013-12-11 15:32:24

标签: php mysql

好吧基本上我试图将今天的日期与数据库日期进行比较,并确定今天的日期是否为>然后是数据库中的一个日期。但无论从数据库中获取什么日期<或者>与今天相比,结果总是如此。

请一些请求查看我的代码,并指出任何潜在的错误请

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;
    }
}

3 个答案:

答案 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;
    }
}