Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP函数默认变量值为DateTime+;24小时_Php_Datetime_Increment - Fatal编程技术网

PHP函数默认变量值为DateTime+;24小时

PHP函数默认变量值为DateTime+;24小时,php,datetime,increment,Php,Datetime,Increment,我需要声明一个采用MySQL DateTime格式字符串的函数,或者默认情况下使用当前DateTime+24小时 比如: function myFunction($next_date = new DateTime()->add(new DateInterval('P1D'))->format('Y-m-d H:i:s')) { echo "Next date : " . $next_date; } 我找不到有效的方法,谢谢。只是代码中有语法错误: 在使用类的任何实例之前,应

我需要声明一个采用MySQL DateTime格式字符串的函数,或者默认情况下使用当前DateTime+24小时

比如:

function myFunction($next_date = new DateTime()->add(new DateInterval('P1D'))->format('Y-m-d H:i:s')) {
    echo "Next date : " . $next_date;
}

我找不到有效的方法,谢谢。

只是代码中有语法错误:

在使用类的任何实例之前,应该将其分配给变量

因此,在执行以下操作之前:
new DateTime()->
您应该先执行
$DateTime=new DateTime()
,然后执行
$DateTime->

因此,请尝试将代码修改为:

function myFunction($next_date = null) {
    if(!$next_date) {
        $dateTime = new DateTime();
        $next_date = $dateTime->add(new DateInterval('P1D'))->format('Y-m-d H:i:s');
    }
    echo "Next date : " . $next_date;
}

只是代码中有语法错误:

在使用类的任何实例之前,应该将其分配给变量

因此,在执行以下操作之前:
new DateTime()->
您应该先执行
$DateTime=new DateTime()
,然后执行
$DateTime->

因此,请尝试将代码修改为:

function myFunction($next_date = null) {
    if(!$next_date) {
        $dateTime = new DateTime();
        $next_date = $dateTime->add(new DateInterval('P1D'))->format('Y-m-d H:i:s');
    }
    echo "Next date : " . $next_date;
}

对于由于php版本或个人偏好(比如他们真的喜欢一行程序)而不能或不想使用该结构的任何人,您可以使用以下内容:

$next_date=date("Y-m-d H:i:s",strtotime("+1 day"));

就我个人而言,我认为没有必要为这么简单的任务创建和操作对象。

对于那些因为php版本或个人偏好(比如他们真的喜欢一行程序)而不能或不想使用该结构的人,您可以使用以下方法:

$next_date=date("Y-m-d H:i:s",strtotime("+1 day"));

就我个人而言,我认为没有必要为这么简单的任务创建和操作对象。

谢谢,我没有想到这一点,我只是想把所有的东西都放在函数声明中…@Fredovsky Np!很高兴为所有关于
DateTime()
和时区声明的读者写一句忠告:谢谢,我没有想到这一点,我只是想把所有的东西都放在函数声明中…@Fredovsky Np!很高兴为所有读者写一篇关于
DateTime()
和时区声明的警示语:
date(“Y-m-d H:i:s”,strotime(+1天”)将suffice@billynoah哦,是的,非常正确,当我在做一些测试时,我硬编码了一个日期,这个日期给bunkerboy的答案带来了麻烦,给出了一个特定的时区。我会更新我的答案,谢谢你提醒我。@mickmackusa很抱歉,现在投票已锁定,请编辑一些内容,然后我将删除我的下一票
日期(“Y-m-d H:I:s”,strotime(+1天”)将suffice@billynoah哦,是的,非常正确,当我在做一些测试时,我硬编码了一个日期,这个日期给bunkerboy的答案带来了麻烦,给出了一个特定的时区。我会更新我的答案,谢谢你把它带给我的注意。米克马库萨抱歉,但现在投票锁定,请编辑一些东西,然后我将删除我的下落,请考虑我已故的答案作为公认的答案。在我看来,使用Nishanth的DateTime对象方法是过分的,因为我的一行程序支持更大的php版本,可以用更少的代码完成同样的工作。这不是关于点挖掘,而是为未来的SO读者确定最佳答案。(尼森,很抱歉再次对你这么做,这纯粹是巧合,我不是在重复你的答案,DATETIME是我最喜欢的标签之一。据我所知,你的方法也是正确的。请考虑我已故的答案作为可接受的答案。在我看来,使用Nishanth的DateTime对象方法是过分的,因为我的一行程序支持更大的php版本,可以用更少的代码完成同样的工作。这不是关于点挖掘,而是为未来的SO读者确定最佳答案。(Nishanth,很抱歉再次对你这样做,这纯粹是巧合——我不是在跟踪你的答案;datetime是我最喜欢的标签之一。据我所知,你的方法也是正确的。)