Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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-为日期添加一个时间间隔,但得到的差异不起作用_Php - Fatal编程技术网

PHP-为日期添加一个时间间隔,但得到的差异不起作用

PHP-为日期添加一个时间间隔,但得到的差异不起作用,php,Php,我想倒计时多长时间,直到某个东西过期,但它不起作用。特别是,使用datetime的diff函数基本上会返回一个不为0的dateinterval。代码如下: $created = new DateTime("2012-11-20"); $expires = $created; $expires->add(new DateInterval("P14D")); //adds a week $timeLeft = $created->diff($expires

我想倒计时多长时间,直到某个东西过期,但它不起作用。特别是,使用datetime的diff函数基本上会返回一个不为0的dateinterval。代码如下:

    $created = new DateTime("2012-11-20");
    $expires = $created;
    $expires->add(new DateInterval("P14D")); //adds a week
    $timeLeft = $created->diff($expires);
    echo $timeLeft->format('%a days');

问题是此代码始终返回0天。

主要问题是如何复制对象,您需要克隆对象。。替换

$expires = $created;

完整代码

$created = new DateTime("2012-11-20");
$expires = clone $created;
$expires->add(new DateInterval("P14D")); //adds 14 days
$timeLeft = $created->diff($expires);
echo $timeLeft->format('%a days');
输出

14 days

主要问题是如何复制对象,需要克隆对象。。替换

$expires = $created;

完整代码

$created = new DateTime("2012-11-20");
$expires = clone $created;
$expires->add(new DateInterval("P14D")); //adds 14 days
$timeLeft = $created->diff($expires);
echo $timeLeft->format('%a days');
输出

14 days