J'ai besoin de créer des fonctions PHP qui me permettent de monter/descendre des unités de datetime. Plus précisément, je dois être en mesure de passer au mois suivant/précédent de l'actuel.Vous ne pouvez pas obtenir le mois précédent à partir de DateTime en PHP- Est-ce un (assez gros) bug?
Je pensais que je pouvais le faire en utilisant DateTime :: add/sub (P1M). Cependant, en essayant d'obtenir le mois précédent, il bousille si la valeur de date = 31- ressemble il est en train d'essayer de compter depuis 30 jours au lieu de décrémenter la valeur du mois !:
$prevMonth = new DateTime('2010-12-31');
Essayez de décrémenter le mois :
$prevMonth->sub(new DateInterval('P1M')); // = '2010-12-01'
$prevMonth->add(DateInterval::createFromDateString('-1 month')); // = '2010-12-01'
$prevMonth->sub(DateInterval::createFromDateString('+1 month')); // = '2010-12-01'
$prevMonth->add(DateInterval::createFromDateString('previous month')); // = '2010-12-01'
Cela semble certainement être un comportement incorrect. Quelqu'un a-t-il un aperçu? Action de grâce
REMARQUE: version PHP 5.3.3
Bien qu'il ne s'agisse probablement que d'une faute de frappe, '$ prevMonth = new DateTime ($ '2010-12-31');' est une erreur de syntaxe. – JAL
Est-ce que ça a à voir avec ce dont Rasmus parle ici? On dirait que ça ... http://twitter.com/rasmus/status/29243336217 http://twitter.com/rasmus/status/29243723623 http://twitter.com/rasmus/status/29243824255 – JAL
@Alex JL- Whoah ne sait pas comment vous l'avez trouvé, mais c'est tout - voir spécifiquement ceci: http://www.gnu.org/software/tar/manual/html_node/Relative-items-in-date-strings.html#SEC120 Postez votre commentez comme une réponse, donc je peux vous donner du crédit! – Yarin