0
votes

PHP DateTime le mois précédent de 31 décembre est faux

J'ai ceci: xxx

Ma compréhension est "-1 mois" doit modifier l'objet quel que soit le nombre de jours au cours de ce mois, ou?

Naturally quoi Devrais-je obtenir ou vous attendre à obtenir est fin de novembre (2019-11-30), mais ce que je reçois est le premier de décembre (le même mois). BTW si je change la date à '2019-12-30' (un jour avant), il sera finalement novembre.

Si mon hypothèse initiale n'est pas correcte, quelle est la meilleure alternative à de manière fiable calculer le mois précédent? Toute pensée?


3 commentaires

Comment voulez-vous obtenir mois précédent ? Le dernier jour du mois précédent, quelle que soit la date? '2019-12-15' '-1 mois' devrait donner 2019-11-30 ou 2019-11-15 ?


@CID correct, indépendant de la journée, cela devrait me donner le mois précédent, des idées?


Est-ce que cela répond à votre question? PHP DateTime :: Modifier l'ajout et la soustraction des mois . Cela a déjà été expliqué de nombreuses fois ici, n'est-ce pas l'air? Cela se produit car 2019-11-31 n'existe pas, mais vous vous retrouvez avec 2019-12-01


3 Réponses :


-1
votes

Pour obtenir le dernier jour du mois précédent, vous pouvez obtenir le premier jour du mois en cours et soustraire 1 seconde ou 1 jour: xxx


1 commentaires

Merci pour la réponse rapide, à première vue, cela devrait logiquement être une bonne solution, je le testerai spécialement pour les cas de bord et vous revenir à vous. Juste une chose, mon hypothèse était incorrecte? Je veux dire alors '-1 mois' signifie juste 30 jours non dynamiquement "un mois"?



-1
votes

Le moyen le plus simple et le plus simple d'obtenir le mois dernier dans PHP est

$previousMonth = date("Y-n-j", strtotime("last day of previous month"));


1 commentaires

Encore une fois, ce n'est que pour le cas du dernier jour (ou premier jour) du mois précédent.



0
votes
$date = "2019-12-31 00:00:00";
echo date('Y-m-d', strtotime($date . '-1month'));
This prints out 2019-12-01 as the 31/11 does not exist. The following doesn't answer your question but may help in the future. I like to use Carbon when working with dates. Your issue could be resolved quite simply with this.  https://carbon.nesbot.com/It has many functions and is extremely simple to use, and it can be installed with Composer.

0 commentaires