PHP date_diff参数错误

时间:2015-05-11 08:34:52

标签: php validation datetime

我正在尝试使用date_diff计算出日期是否大于另一个日期,为此我有2套日期(由于我正在制作投注系统,他们下注设置并下注到日期和时间) 。

我有这个验证功能:

data IntList = Empty | Cons Int IntList

我似乎每次都得到同样的错误,它说当我将params重置为DateTime时,date_diff不能取一个字符串,就像函数要求的那样 - 但是,这仍然不起作用我做错了什么或者我需要阅读什么?

我看过PHP手册,虽然它确实帮助我理解但没有回答我的问题。

3 个答案:

答案 0 :(得分:1)

date_diff($betsetdate, $bettilldate)将返回object,您无法比较那样。尝试比较second s与 -

的差异
$diff = date_diff($betsetdate, $bettilldate);
if ($diff->s > 0) {

答案 1 :(得分:0)

尝试使用它并检查它是否有效:

$dDiff = $betsettime->diff($bettilltime);

答案 2 :(得分:0)

我认为这是转换日期问题。试试这个:

public function CanBet($bettilltime, $bettilldate, $betsettime, $betsetdate, $amount) {
    $can_bet = true;
    $bettilltime = new DateTime(date("Y-m-d", strtotime("Y-m-d",$bettilltime)));
    $bettilldate = new DateTime(date("Y-m-d", strtotime("Y-m-d",$bettilldate)));

    $betsettime = new DateTime(date("Y-m-d", strtotime("Y-m-d",$betsettime)));
    $betsetdate = new DateTime(date("Y-m-d", strtotime("Y-m-d",$betsetdate)));
    if ($this->GetUserBalance() > $amount) {
        if (date_diff($betsetdate, $bettilldate) > 0) {
            if (date_diff($betsettime, $bettilltime) > 0) {
                $can_bet = true;
            }
            else {
                $can_bet = false;
            }
        }
        else {
            $can_bet = true;
        }
    }
    else {
        $can_bet = false;
    }

    return $can_bet;
}