加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 使用DateInterval将Date添加到DateTime会更改原始日期以

发布时间:2020-12-13 16:02:24 所属栏目:PHP教程 来源:网络整理
导读:我有这个非常简单的代码: $start_date = new DateTime($post['start_date']);$end_date = $start_date-add(new DateInterval('P6M'));echo $start_date-getTimestamp(); // 1351836000echo $end_date-getTimestamp(); // 1351836000 当然,两者都以相同的时
我有这个非常简单的代码:
$start_date = new DateTime($post['start_date']);
$end_date = $start_date->add(new DateInterval('P6M'));
echo $start_date->getTimestamp(); // 1351836000
echo $end_date->getTimestamp(); // 1351836000

当然,两者都以相同的时间戳结束,因为添加日期间隔会影响原始的$start_date.那么我该如何解决这个问题呢?所以我可以保留原来的$start_date,然后在另一个变量中添加6个月?

我试了这个没有运气:

$start_date = new DateTime($post['start_date']);
$start_date_actual = $start_date;
$end_date = $start_date_actual->add(new DateInterval('P6M'))->getTimestamp();
变量保存对象的引用,而不是对象本身.因此赋值只会获得指向同一对象的更多变量,而不是对象的多个副本.

如果需要副本,请使用clone关键字:

$end_date = clone $start_date;
$end_date->add(new DateInterval('P6M'));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读