php datetime使用现有日期创建新日期并添加天数

php datetime使用现有日期创建新日期并添加天数,php,date,datetime,Php,Date,Datetime,我有个约会: $launched=new DateTime(); 我想使用$launched创建一个新的日期时间,但要添加天数。比如: $expired=new DateTime($launched->modify("+$expiry days")); 如何做到这一点?假设您使用的是PHP 5.5或更高版本,那么这就很容易了: $launched = new DateTimeImmutable(); $expired = $launched->modify("+$expiry

我有个约会:

$launched=new DateTime();
我想使用$launched创建一个新的日期时间,但要添加天数。比如:

$expired=new DateTime($launched->modify("+$expiry days"));

如何做到这一点?

假设您使用的是PHP 5.5或更高版本,那么这就很容易了:

$launched = new DateTimeImmutable();
$expired  = $launched->modify("+$expiry days");
DateTimeImmutable
不会修改原始对象,而
DateTime
就是这样做的。因此,您可以通过
modify()
将结果对象return分配给一个变量,并在将来拥有一个带有日期的新对象

如果您使用的是较旧且过时的PHP版本,则可以克隆原始对象以获得相同的结果:

$launched = new DateTimeImmutable();
$expired  = clone $launched;
$expired->modify("+$expiry days");

假设您使用的是PHP 5.5或更高版本,那么这就很容易了:

$launched = new DateTimeImmutable();
$expired  = $launched->modify("+$expiry days");
DateTimeImmutable
不会修改原始对象,而
DateTime
就是这样做的。因此,您可以通过
modify()
将结果对象return分配给一个变量,并在将来拥有一个带有日期的新对象

如果您使用的是较旧且过时的PHP版本,则可以克隆原始对象以获得相同的结果:

$launched = new DateTimeImmutable();
$expired  = clone $launched;
$expired->modify("+$expiry days");