Laravel中的DateTime - 在非对象上调用成员函数add()

时间:2014-06-08 23:43:23

标签: php datetime laravel laravel-4

您好我正在尝试在Laravel 4中使用DateTime,当我尝试使用add函数并且无法解决原因时,我继续调用非对象上的成员函数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'));
        }

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

1 个答案:

答案 0 :(得分:1)

不是在静态上使用它,而是简单地实例化一个新的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');
相关问题