Je dois déclarer deux dates au format "Ymd"
: $toDate
et $fromDate
.Comment soustraire 4 mois de la date d'aujourd'hui?
$toDate
représente la date d'aujourd'hui et $fromDate
doit être 4 mois plus tôt qu'aujourd'hui. Comment créer $fromDate
?
Je dois déclarer deux dates au format "Ymd"
: $toDate
et $fromDate
.Comment soustraire 4 mois de la date d'aujourd'hui?
$toDate
représente la date d'aujourd'hui et $fromDate
doit être 4 mois plus tôt qu'aujourd'hui. Comment créer $fromDate
?
Utilisez la magie de strtotime
:
$fromDate = date("Ymd", strtotime("-4 months"));
voir le code ci-dessous ...
$fourmonthsback = date("Ymd", mktime(0, 0, 0, date("m")-4, date("d"), date("Y")));
OU
$fourmonthsback = mktime(0, 0, 0, date("m")-4, date("d"), date("Y"));
Cela ne fonctionnera pas en janvier, février, mars ou avril car le mois sera 0 ou négatif. – cypher
@cypher - En fait, mktime date l'arithmétique. Si vous définissez le paramètre month sur moins de 1 mktime, vous choisissez un mois plus tôt. Si vous réglez le mois sur 0 alors mktime modifiera la date entière pour être le mois de décembre de l'année précédente. Cette arithmétique fonctionne sur tous les paramètres de mktime sauf pour le fuseau horaire. – emurano
Vraiment? Désolé pour ça, je ne le savais pas. – cypher
aujourd'hui au 31 décembre, j'essayé le même code et a essayé pour soustraire 1 mois comme mentionné ci-dessus il m'a renvoyé la date du 1er décembre 2012. cependant je m'attendais à 30 novembre. Est-ce le résultat attendu ou c'est un bug? –
@Mubashar Je suppose que c'est par conception! Les deux approches (les vôtres et les strtotimes) sont sans doute également valables. –
Oui c'est vrai –