Bonjour,
Pour les besoins d'un script il me faut un new DateTime
Le script fonctionne parfaitement en entrant manuellement la date et l'heure dans le new DateTime (par exemple $heure= new DateTime(2021-01-11 23:00);
Je travaille sur une API et j'aimerai que les variables de l'API soient automatiquement récupérées dans le new DateTime.
J'ai essayé quelque chose du genre
$jour=date(Y-m-d);
$heure=date(H:i);
$newheure=new DateTime($jour, $heure);
Mais ça ne fonctionne pas (j'ai essayé avec et sans séparateurs, avec et sans quotes ...).
Est-il possible de mettre des variables dans un new DateTime ?
Merci

2 réponses


Michel4-7
Auteur
Réponse acceptée

Merci ça fonctionne parfaitement

Hey Michel,

Si je comprend bien tu veux créer un object datetime avec des valeurs en provenance de deux variables, l'une contenant la date et l'autre l'heure.

En premier un petit tour sur la documentation officielle t'aurait donné la réponse : https://www.php.net/manual/fr/datetime.construct.php

Les erreurs :

  • la fonction date doit prendre en paramètre une chaine de caractère donc date("Y-m-d") et date("H:i") dans ton cas
  • le constructeur de l'objet Datetime prend deux paramètres (optionnels) un datetime et un timezone

Une remarque, si tu veux juste la date courante, pas besoin de t'embêter tu peux juste faire new Datetime() et par défaut c'est "now" en premier paramètre.

Résulat, tu peux soit faire :

$date = date("Y/m/d");
$time = date("H:i");

$datetime = new Datetime("{$date} {$time}");
// ou $datetime = new Datetime("$date $time");
// ou $datetime = new Datetime($date . ' ' . $time);

ou si date et heure contiennent tout le temps la date et l'heure courante :

$datetime = new Datetime();

À l'avenir, lis attentivement la documentation PHP elle est très claire et te permet de pas perdre de temps à chercher, poster et attendre une réponse pour des question faciles d'utilisation de fonctions natives.