gpt4 book ai didi

php - 使用 DateInterval 向 DateTime 添加月份会更改原始日期以匹配新日期

转载 作者:可可西里 更新时间:2023-11-01 12:45:07 24 4
gpt4 key购买 nike

我有这个非常简单的代码:

$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'));

关于php - 使用 DateInterval 向 DateTime 添加月份会更改原始日期以匹配新日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10419807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com