J'ai ceci: Ma compréhension est "-1 mois" doit modifier l'objet quel que soit le nombre de jours au cours de ce mois, ou? P> 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. P> 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? P> p>
3 Réponses :
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:
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"?
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"));
Encore une fois, ce n'est que pour le cas du dernier jour (ou premier jour) du mois précédent.
$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.
Comment voulez-vous obtenir mois précédent i>? Le dernier jour du mois précédent, quelle que soit la date?
'2019-12-15' '-1 mois' code> devrait donner2019-11-30 code> ou2019-11-15 code>?@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 code> n'existe pas, mais vous vous retrouvez avec2019-12-01 code>