Considere el siguiente ejemplo citado del manual de php para DateTime
<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>
'D' es por días, ¿qué significa la 'P' en ese formato?

Ppero esa referencia es muy discreta. Supuse que significaba período y que estaba buscandophp.netpara esa palabra, obviamente, nunca llegué a la página constructor .. Pero no es referencia endate_format,DateTime::diff,DateTime::format,DateInterval, y una serie de generalesDate/Timefunciones. Quería saber si había otros prefijos que conocer y maldita sea si pudiera encontrarlo hasta que llegué al intercambio de pilasCreo que se puede responder con más detalles. En primer lugar, el
DateIntervalmétodo constructor toma un parámetro llamado$interval_specque es una cadena.DateInterval::__construct ( string $interval_spec )Este parámetro tiene una especificación que se describe a continuación:
Hay algunos designadores de período que se utilizan en el argumento:
Veamos un ejemplo usando designadores de período:
Hay un orden que debe mantenerse como se describe en el documento:
La especificación también se puede representar como una fecha y hora .
Pero los valores en este formato no pueden exceder el punto de transferencia de un período determinado (por ejemplo, 25 horas no es válido).
fuente