在一个非对象上调用一个成员函数add()


DateTime in Laravel -- Call to a member function add() on a non-object

嗨,我试图在Laravel 4中使用DateTime,当我尝试使用添加函数并且无法找出原因时,我一直在非对象上调用成员函数add()。

这是我的代码

    if(isset($_POST['from']) && isset($_POST['direction']) && isset($_POST['product']) && isset($_POST['operator'])){
        $businessid = mysql_real_escape_string($_POST['operator']);
    $direction = mysql_real_escape_string($_POST['direction']);
    $dateStart = DateTime::createFromFormat('D M d Y', $_POST['from']);
    $dateEnd = DateTime::createFromFormat('D M d Y', $_POST['from']);
        if($direction == 'first')
        {
            $dateEnd->add(new DateInterval('P14D'));
        }
        else if($direction == 'right')
        {
            $dateStart->add(new DateInterval('P1D'));
            $dateEnd->add(new DateInterval('P7D'));
        }
        else if($direction == 'left')
        {
            $dateStart->sub(new DateInterval('P7D'));
            if($dateStart < $todaysDate) {  $dateStart = $todaysDate; }
            $dateEnd->sub(new DateInterval('P1D'));
        }
        else if($direction == 'date')
        {
            $dateStart->sub(new DateInterval('P7D'));
            while($dateStart < $todaysDate) {   $dateStart->add(new DateInterval('P1D')); }
            $dateEnd->add(new DateInterval('P10D'));
        }

任何想法都将是一个很大的帮助,谢谢,

您可以简单地实例化一个新的DateTime对象,而不是在静态中使用它。考虑这个例子:

$from = '2014-06-06'; // sample data
$dateEnd = new DateTime();
$dateEnd->createFromFormat('D M d Y', $from);
$dateEnd->add(new DateInterval('P10D'));
echo $dateEnd->format('D M d Y');