J'ai un problème avec le calcul de la différence entre deux dates (incluant la date de fin) en utilisant le carbone. Voici le problème:Différence Date Calcul
J'utilise ce code (source: réponse de danharper à https://laracasts.com/discuss/channels/general-discussion/carbon-display-age-in-years-months-day?page=1):
$dateFrom = new Carbon("2017-01-01");
$dateTo = new Carbon("2017-12-31");
$dateTo = $dateTo->addDay(); //including End Date
echo $dateFrom->diff($dateTo)->format('%y') . " year, <br>";
echo $dateFrom->diff($dateTo)->format('%m') . " month, <br>";
echo $dateFrom->diff($dateTo)->format('%d') . " day <br>";
echo "difference " . $dateFrom->diffInDays($dateTo) . " days <br>";
Scénario 1:
Disons que, $date1 = 2017-01-01
et $date2 = 2017-12-31
, il y résultats:
1 year, 0 month, 0 day
difference 365 days
Quand je suis à l'aide de la calculatrice de date dans https://www.timeanddate.com/date/durationresult.html?d1=1&m1=1&y1=2017&d2=31&m2=12&y2=2017&ti=on, il va en résulter:
It is 365 days from the start date to the end date, end date included
Or 1 year including the end date
Ils aboutissent à la même réponse. MAIS:
Scénario 2:
$date1 = 2017-10-01
et $date2 = 2017-12-31
, alors ça va les résultats:
0 year, 3 month, 1 day
difference 92 days
Utilisation de la calculatrice de date dans https://www.timeanddate.com/date/durationresult.html?d1=1&m1=10&y1=2017&d2=31&m2=12&y2=2017&ti=on, il va les résultats:
It is 92 days from the start date to the end date, end date included
Or 3 months including the end date
Le résultat dans timeanddate.com est exactement 3 mois SEULEMENT. Pas avec 1 jour. Je veux que le résultat soit 3 mois (la réponse de timeanddate.com).
Comment puis-je obtenir cette réponse? Ou, si cela ne peut pas être réalisé, y a-t-il une autre technique à réaliser: x months y days
?
(ex: 1 jan 2017
~ 5 feb 2019
= 25 months, 5 days
)
Aidez-moi s'il vous plaît.
Vous utilisez un même objet de date heure '$ dateFrom' pour la mesure de différence en termes de mois de l'année et le jour. En raison de l'utilisation du même objet, '$ dateTo' est soustraite encore et encore afin que votre résultat ne soit pas celui que vous voulez. –
@SagarGautam alors, comment je suis censé faire la bonne façon? – joshua14
J'ai ajouté ma réponse, veuillez prendre un moment pour la voir. –