Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Datumsberechnung

Empfohlene Antworten

Veröffentlicht

Hallo Zusammen

Ich hab 4 Datums werte mit denen ich etwas berechne

$erstertagimmonat

$letztertagimmonat

$letztertagimmonat= explode("-",$letztertagimmonat);

$erstertagimmonat= explode("-",$erstertagimmonat);

$letztertagimmonat= (mktime(0,0,0,$letztertagimmonat[1],$letztertagimmonat[2],$letztertagimmonat[0])) ;

$erstertagimmonat= (mktime(0,0,0,$erstertagimmonat[1],$erstertagimmonat[2],$erstertagimmonat[0])) ;

$differenz = ($letztertagimmonat - $erstertagimmonat) /86400;

echo $differenz

DAs is mein CODE......

funktioniert auch, ich bekomm immer die tagesanzahl was dazwischen liegt

Außer beim Monat März 2004 da kommt ne komma zahl raus?????

WIESOOOOO?? VErdammm?... das gibts doch nicht bei allen andren monaten geht es

Gruß

Enno

mach dir doch ein paar testausgaben rien

Vielleicht weil 2004 ein Schaltjahr ist?

Der Februar ist ein Tag länger als sonst.

Ist nur 'ne Vermutung.

  • Autor

testausgaben funktionieren auch komplett.

und im februar bekommt er auch raus, das der monat 29 Tage hat.

wenn startdatum und enddatum 1ter und letzter Tag des Monats sind.

was komisch ist:

wenn ich bereits hier

$letztertagimmonat= (mktime(0,0,0,$letztertagimmonat[1],$letztertagimmonat[2],$letztertagimmonat[0])) ;

die division durch 86400 reinschreibe, also so:

$letztertagimmonat= (mktime(0,0,0,$letztertagimmonat[1],$letztertagimmonat[2],$letztertagimmonat[0]))/86400 ;

Dann kommt hier nen Kommawert raus.

Darf doch nicht. oder? Der mktime wert ist doch ohne Stunde, Minute, Sekunde. Ist also immer nen ganzer Tag. und /86400 ist ja wieder nur die Tage. Also müssen da doch immer ganzzahlige Werte rauskommen.

Und der Kommawert kommt immer. Hab ich erst hinterher gemerkt.

Nur in allen Monaten ist der bei $erstertagimmonat und $letztertagimmonat gleich. also der Kommawert.

Nur im März 2004 ist er unterschiedlich. Dadurch kommt dann im Endergebniss das Komma zustande.

Gruß

Enno

  • Autor

wenn man den Code hier

<table cellpadding="7">

  <tr>

    <?php

    function test($erstertagimmonat_str, $letztertagimmonat_str)

     {

      $erstertagimmonat_arr = explode("-",$erstertagimmonat_str);

      $erstertagimmonat_tst = (mktime(0,0,0,$erstertagimmonat_arr[1],$erstertagimmonat_arr[2],$erstertagimmonat_arr[0])) ;

      $letztertagimmonat_arr = explode("-",$letztertagimmonat_str);

      $letztertagimmonat_tst = (mktime(0,0,0,$letztertagimmonat_arr[1],$letztertagimmonat_arr[2],$letztertagimmonat_arr[0])) ;

      $differenz_sec = ($letztertagimmonat_tst - $erstertagimmonat_tst);

      $differenz_day = $differenz_sec / 86400;

      echo("<td>");

      echo("\$erstertagimmonat_str<dd>$erstertagimmonat_str</dd><br>");

      echo("\$erstertagimmonat_tst<dd>" . date("Y-m-d", $erstertagimmonat_tst) . "</dd><br>");

      echo("\$letztertagimmonat_str<dd>$letztertagimmonat_str</dd><br>");

      echo("von \$letztertagimmonat_tst<dd>" . date("Y-m-d", $letztertagimmonat_tst) . "</dd><br>");

      echo("\$differenz_sec<dd>$differenz_sec</dd><br>");

      echo("\$differenz_day<dd>$differenz_day</dd><p>");

      echo("</td>");

     }

    test("2004-03-01", "2004-03-01");

    test("2004-03-01", "2004-03-02");

    test("2004-03-01", "2004-03-03");

    test("2004-03-01", "2004-03-04");

    test("2004-03-01", "2004-03-05");

    test("2004-03-01", "2004-03-06");

    test("2004-03-01", "2004-03-07");

    test("2004-03-01", "2004-03-08");

    test("2004-03-01", "2004-03-09");

    test("2004-03-01", "2004-03-10");

    test("2004-03-01", "2004-03-11");

    test("2004-03-01", "2004-03-12");

    test("2004-03-01", "2004-03-13");

    test("2004-03-01", "2004-03-14");

    test("2004-03-01", "2004-03-15");

    test("2004-03-01", "2004-03-16");

    test("2004-03-01", "2004-03-17");

    test("2004-03-01", "2004-03-18");

    test("2004-03-01", "2004-03-19");

    test("2004-03-01", "2004-03-20");

    test("2004-03-01", "2004-03-21");

    test("2004-03-01", "2004-03-22");

    test("2004-03-01", "2004-03-23");

    test("2004-03-01", "2004-03-24");

    test("2004-03-01", "2004-03-25");

    test("2004-03-01", "2004-03-26");

    test("2004-03-01", "2004-03-27");

    test("2004-03-01", "2004-03-28");

    test("2004-03-01", "2004-03-29");

    test("2004-03-01", "2004-03-30");

    test("2004-03-01", "2004-03-31");

    ?>

  </tr>

</table>

laufen lässt, sieht man, das die Berechnugn solange stimmt, wie das Endedatum vor dem 29.03. liegt. sobald es 29., 30. oder 31. März ist kommt Bull**** raus.

Gruß

Enno

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.