PHP , Monate zwischen zwei Daten berechnen?
Guten Morgen zusammen,
leider scheitere ich an einer scheinbar einfach wirkenden Berechnung.
Es gelingt mir einfach nicht auf das richtige Ergebnis zu kommen.
Was möchte ich lösen?
Ich möchte einfach nur die Monate zwischen zwei Daten ermitteln.
Hat jemand eine Idee? (obwohl ich mir zig Beispiele angeschaut habe, bekomme ich es nicht in den Griff.)
Was ist mein Fehler?
- Ich bekomme immer eine "Minuszahl" als Ergebnis
Hier mein Code:
// Timestamp festlegen = Datum heute
$heute = time();
// Diffdatum in Timestamp umwandeln
$endDatumWandel = strtotime("01.02.2020");
$endMonat = date("m" , $endDatumWandel);
$t_Monat = date("m" , $heute);
echo $x = $endMonat -$t_Monat;
Vielen Dank.
4 Antworten
ich würde mit dem Timestamp rechnen und das Ergebnis dann in Tage/Stunden/Minuten umwandeln...
Ok, dafür ist mein Vorschlag nicht so geeignet. Schon hiermit versucht? https://rotering-net.de/tut/php/datumsdifferenz-in-jahren-monaten-und-tagen.txt
Wandel dein Datum vorher mal mit Strtotime um und den timestamp an die Funktion übergeben. Bei mir hat es dann funktioniert.
$datum1 = strtotime("13.05.2015");
$datum2 = strtotime("13.06.2015");
$result = datediff_ymd($datum1,$datum2);
echo $result; // Ausgabe: 0 Jahre, 1 Monate und 0 Tage
PHP , Monate zwischen zwei Daten berechnen?
<?php
$anfang = strtotime('01 January 2019');
$ende = strtotime('03 March 2019');
$monate = abs((date('Y', $ende) - date('Y', $anfang))*12 + (date('m', $ende) - date('m', $anfang)));
echo $monate;
?>
Alex
Vielleicht könnte das helfen?
$datetime1 = new DateTime();
$datetime2 = new DateTime('2020-02-01');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%i Minuten %h Stunden %d Tage %m Monate %y Jahre');
Das könnte vielleicht daran liegen, daß wir am Anfang des JAhres immer wieder mit dem 1. Monat beginnen ;-).
Wenn Du eien Monatsdifferenz berechnen willst, dann mußt Du natürlich die Jahre berücksichtigen. Deswegen vielleicht eher:
Das habe ich schon versucht, doch leider bekomme ich es nicht hin .
Es gelang mir die genauen Tage zu ermitteln. Doch wie kommt man von den Tagen wieder zurück zu den Monaten?