Php: DateTime: comment régler seulement les secondes (pas les heures ni les minutes)

J'ai un code où je dois "aller" au plus bas minute.

  • 16:05:00 devrait devenir 16:05:00
  • 16:05:01 devrait devenir 16:05:00
  • 16:05:29 devrait devenir 16:05:00
  • 16:05:30 devrait devenir 16:05:00
  • 16:05:31 devrait devenir 16:05:00
  • 16:05:59 devrait devenir 16:05:00

Je veux utiliser l'objet DateTime.
Il n'y a pas de fonctions telles que:

  • setHours()
  • setMinutes()
  • setSeconds()

Voici le début de mon code:

$my_date=DateTime::createFromFormat(
    'Y-m-d H:i:s',
    $bd_date
);  
$my_date->setTimezone(self::$TimeZone);

Maintenant, je voudrais définir la "seconde" partie à zéro.

Avez-vous un moyen élégant de seulement réglage des minutes de la façon dont je voudrais?

Nota: je ne suis pas à la recherche d'une solution comme "diviser par getTime() par 60, convertir en entier, puis le multiplier par 60". Je suis à la recherche d'une solution générique pour régler les secondes, non seulement à "0".

source d'informationauteur Olivier Pons