Premier jour du mois un an avant

Résolu/Fermé
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 - 15 avril 2020 à 10:41
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 - 15 avril 2020 à 11:31
Bonjour,
Je voudrais obtenir le premier jour du mois un an avant.
Par exemple nous sommes le 15 avril 2020 : je voudrais le 1er avril 2019.
J'ai essayé
$StarTime = strtotime('first day of month - 1 year');

j'obtiens le 1er janvier 1970 !

Où est l'erreur ?
Merci

4 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
15 avril 2020 à 11:04
Bonjour,

le premier jour du mois.. c'est toujours le "1"
Donc

$moisencours  = date('m');
$anneecours  = date('Y');
$anDernier =  (int)$anneecours - 1 ;


$StarTime = date('Y-m-d',strtotime( $anDernier. '-' . $moisencours  . '-01'));
echo $StarTime;



0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
15 avril 2020 à 11:06
0
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 8
15 avril 2020 à 11:22
Merci à tous les deux, les 2 solutions fonctionnent.
Comme j'utilisais avec succès
strtotime('- 1 year midnight')
pour avoir la date un an avant
j'ai préféré la solution de yg_be
strtotime('first day of this month - 1 year')
0
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 8
15 avril 2020 à 11:25
Question subsidiaire
nous sommes le 15 avril
je voudrais obtenir non pas le 1er avril mais le 1er mai
donc 11 mois avant
strtotime('first day of this month - 11 month')

donne quand même le 1er avril !
Une idée ?
Encore merci
0
Herve_be Messages postés 1016 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 24 avril 2024 8
15 avril 2020 à 11:31
J'ai trouvé tout seul
strtotime('first day of next month - 1 year')
0