$date1 = $date2 = new DateTime();
$date2->add(new DateInterval('P3Y'));
Ahora $date1
y $date2
contienen la misma fecha - tres años a partir de ahora. Me gustaría crear dos fechas de tiempo separadas, una que se analiza desde una cadena y otra con tres años agregados a ella. Actualmente lo he pirateado de esta manera:¿Cómo copio en profundidad un objeto DateTime?
$date2 = new DateTime($date1->format(DateTime::ISO8601));
pero eso parece un hack horrendo. ¿Existe una forma "correcta" de copiar en profundidad un objeto DateTime?
utilicé un nuevo DateTime en el ejemplo para demostrar el punto , pero por ahora supongo que DateTime se devuelve de una API opaca a la que no puedo volver a llamar. Por ejemplo, tengo una función que maneja pedidos que devuelve un DateTime que es cuando el cliente puede hacer un pedido. Llamar a la función para crear una copia produce efectos secundarios que no quiero. –
No lo he probado realmente, pero se menciona en php.net que esto solo es aplicable para PHP 5.3 y superior. –
@hugo: Sí, la clase DateTime requiere PHP 5.3. –