J'ai une table de base de données avec un champ de date startBefore
au format ('Y-m-d')
. Il existe également 3 autres champs int représentant les années, les mois et les jours. Ce que je voudrais faire est de remplir ces trois champs la nouvelle date startAfter
au format 'Y-m-d'
.
Par exemple, la date 'startBefore
' est '2001-11-14' et j'aimerais soustraire 3 ans, 7 mois, un jour pour obtenir la date startAfter
.
Des idées comment je peux accomplir ceci?
Merci!
utiliser strtotime('date -years -months -days')
<?php
$time = strtotime('2001-11-14 -3 years -7 months -5 days');
echo $date = date("Y-m-d", $time);
Voici la DateTime
:
$start_date = '2013-03-06';
$date = DateTime::createFromFormat('Y-m-d',$start_date);
$date->modify('+1 month');
echo $date->format('Y-m-d');//2013-04-06
$date->modify('+4 year');
echo $date->format('Y-m-d');//2017-04-06
$date->modify('+6 day');
echo $date->format('Y-m-d');//2017-04-12
$date->modify('+24 hours');
echo $date->format('Y-m-d');//2017-04-13
$date->modify('-7 years');
echo $date->format('Y-m-d'); //2010-04-13
$date->modify('-18 months');
echo $date->format('Y-m-d'); //2008-10-13
Etc., etc.
Tu pourrais essayer
strtotime
function in php c'est assez simple
<?php
echo date("jS F, Y", strtotime("11.12.10"));
// outputs 10th December, 2011
echo date("jS F, Y", strtotime("11/12/10"));
// outputs 12th November, 2010
echo date("jS F, Y", strtotime("11-12-10"));
// outputs 11th December, 2010
?>
Une façon consiste à faire du début Avant la date un horodatage, plutôt que de travailler avec des nombres et de récupérer la date de début, un autre moyen consiste à essayer de soustraire des jours, des mois et des années directement à la date.