J'ai une variable appelée $effectiveDate
contenant la date 2012-03-26 .
J'essaie d'ajouter trois mois à cette date et je n'y parviens pas.
Voici ce que j'ai essayé:
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));
et
$effectiveDate = strtotime(date("Y-m-d", strtotime($effectiveDate)) . "+3 months");
Qu'est-ce que je fais mal? Aucun des deux morceaux de code n'a fonctionné.
1340649000
réponse, ce qui semble être correct.$effectiveDate
stocker ce que vous pensez qu'il stocke? Cela fonctionne pour moi .date('Y-m-d', 1340661600)
donne2012-06-26
ce qui est correct.Réponses:
Changez-le en ceci vous donnera le format attendu:
$effectiveDate = date('Y-m-d', strtotime("+3 months", strtotime($effectiveDate)));
la source
"+ '$months' months"
ne fonctionne pas$offset = 5; echo date('Y-m-d', strtotime("+$offset months", strtotime('2000-01-01')));
DémoCette réponse n'est pas exactement à cette question. Mais j'ajouterai ceci puisque cette question est toujours consultable pour savoir comment ajouter / déduire la période de la date.
$date = new DateTime('now'); $date->modify('+3 month'); // or you can use '-90 day' for deduct $date = $date->format('Y-m-d h:i:s'); echo $date;
la source
Je suppose que par "n'a pas fonctionné", vous voulez dire qu'il vous donne un horodatage au lieu de la date formatée, car vous le faisiez correctement:
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate)); // returns timestamp echo date('Y-m-d',$effectiveDate); // formatted version
la source
Vous devez convertir la date en une valeur lisible. Vous pouvez utiliser strftime () ou date ().
Essaye ça:
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate)); $effectiveDate = strftime ( '%Y-%m-%d' , $effectiveDate ); echo $effectiveDate;
Cela devrait fonctionner. J'aime mieux utiliser strftime car il peut être utilisé pour la localisation, vous voudrez peut-être l'essayer.
la source
La réponse de Tchoupi peut être rendue un peu moins verbeuse en concaténant l'argument de strtotime () comme suit:
$effectiveDate = date('Y-m-d', strtotime($effectiveDate . "+3 months") );
(Cela repose sur des détails de mise en œuvre magiques, mais vous pouvez toujours les consulter si vous vous méfiez à juste titre.)
la source
Les éléments suivants devraient fonctionner, veuillez essayer ceci:
$effectiveDate = strtotime("+1 months", strtotime(date("y-m-d"))); echo $time = date("y/m/d", $effectiveDate);
la source
La suite devrait fonctionner
$d = strtotime("+1 months",strtotime("2015-05-25")); echo date("Y-m-d",$d); // This will print **2015-06-25**
la source
Ajouter les nièmes jours, mois et années
$n = 2; for ($i = 0; $i <= $n; $i++){ $d = strtotime("$i days"); $x = strtotime("$i month"); $y = strtotime("$i year"); echo "Dates : ".$dates = date('d M Y', "+$d days"); echo "<br>"; echo "Months : ".$months = date('M Y', "+$x months"); echo '<br>'; echo "Years : ".$years = date('Y', "+$y years"); echo '<br>'; }
la source
Ce qui suit devrait fonctionner, mais vous devrez peut-être changer le format:
echo date('l F jS, Y (m-d-Y)', strtotime('+3 months', strtotime($DateToAdjust)));
la source