Suchen
Inside Forum
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 14.11.2017, 10:44
SonoIo SonoIo ist offline
Besucher
 
Registriert seit: 20.01.2014
Beiträge: 39
Standard Mein Oktoberproblem, oder was passiert da ?

In einer Anwendung gebe ich ein Startdatum und ein Enddatum an und berechne dann die Anzahl der Tage dazwischen (incl. von Start- und Enddatum).
Dazu hab ich folgendes (Test-)Script gebaut

PHP Quellcode:
<?php
$startdatum='2017-10-01';
$enddatum='2017-10-31';
echo "Start : ",$startdatum,"  /  Ende : ",$enddatum,"<br />";
$startunixdatum = (strtotime($startdatum));
$endunixdatum = (strtotime($enddatum));
$tage=abs(($endunixdatum-$startunixdatum)/86400);

echo "Anzahl Tage = ",$tage+1,"<br />";
?>


Meist funzt das, d.h. es wird die Anzahl Tage als Integerwert korrekt ausgegeben, aber nicht immer. Fehler treten vorzugsweise dann auf, wenn der Oktober ab dem Jahr 2000 involviert ist.

Hier ein Auszug aus meiner Testreihe :
Startdatum / Enddatum / Anzahl Tage
1999-10-01 / 1999-10-31 / 31
2000-10-01 / 2000-10-31 / 31.041666666667
2017-01-01 / 2017-12-31 / 365
2017-10-01 / 2017-10-31 / 31.041666666667
2017-11-01 / 2017-11-30 / 30
2017-08-01 / 2017-08-31 / 31
2017-08-01 / 2017-10-31 / 92.041666666667
2017-01-01 / 2017-12-31 / 365
2016-01-01 / 2016-12-31 / 366
2016-10-01 / 2016-10-31 / 31.041666666667

Meine Frage(n):
Könnt Ihr den Fehler bestätigen ?
Woran liegts ?
Wie komm ich drumherum ?

Geändert von SonoIo (14.11.2017 um 10:47 Uhr)
Mit Zitat antworten
  #2  
Alt 14.11.2017, 10:47
hellbringer hellbringer ist offline
Forum-Mitarbeiter
 
Registriert seit: 27.03.2008
Beiträge: 30.904
Standard AW: Mein Oktoberproblem, oder was passiert da ?

Nicht jeder Tag hat 86400 Sekunden. Du solltest hier nicht mit Sekunden sondern mit Tagen rechnen.

Für sowas bietet sich übrigens die DateTime-Klasse an, diese hat eine diff()-Methode um Differenzen von zwei Daten zu errechnen.
Mit Zitat antworten
  #3  
Alt 14.11.2017, 10:58
SonoIo SonoIo ist offline
Besucher
 
Registriert seit: 20.01.2014
Beiträge: 39
Standard AW: Mein Oktoberproblem, oder was passiert da ?

Danke für die extrem fixe Antwort.
Bez. der Date-Time-Klasse werde ich (für mich) dann nochmal etwas Grundlagenforschung betreiben müssen
Mit Zitat antworten
  #4  
Alt 14.11.2017, 11:15
Don T. Worry Don T. Worry ist offline
Engagierter Besucher
 
Registriert seit: 29.03.2012
Beiträge: 494
Standard AW: Mein Oktoberproblem, oder was passiert da ?

Zitat:
Zitat von SonoIo Beitrag anzeigen
Woran liegts ?
Wechsel von Sommerzeit zu Winterzeit.
__________________
“Just think of how stupid the average person is, and then realize half of them are even stupider!” [George Carlin]

“There is only one god, and His name is Death. And there is only one thing we say to Death: "not today".” [Syrio Forel]
Mit Zitat antworten
  #5  
Alt 15.11.2017, 17:42
Ueberdosis Ueberdosis ist offline
Engagierter Besucher
 
Registriert seit: 06.08.2009
Beiträge: 656
Standard AW: Mein Oktoberproblem, oder was passiert da ?

PHP Quellcode:
$startDate = new \DateTime('01.10.2017');
$endDate   = new \DateTime('31.10.2017');

echo $startDate->diff($endDate)->format('%a Tage'); // Ausgabe: 30 Tage
Mit Zitat antworten
  #6  
Alt 15.11.2017, 18:13
SonoIo SonoIo ist offline
Besucher
 
Registriert seit: 20.01.2014
Beiträge: 39
Standard AW: Mein Oktoberproblem, oder was passiert da ?

Zitat:
Zitat von Ueberdosis Beitrag anzeigen
PHP Quellcode:
$startDate = new \DateTime('01.10.2017');
$endDate   = new \DateTime('31.10.2017');

echo $startDate->diff($endDate)->format('%a Tage'); // Ausgabe: 30 Tage
Danke !
So gehts
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Reicht für mein Projekt html oder brauche ich php ? luckyjoe HTML 7 15.03.2014 02:42
Was passiert mit Klassenvariablen bjnas PHP 16 25.02.2012 15:20
scriptfehler oder mein fehler christian611 PHP 6 27.02.2007 13:12
Strings teilen oder wie kriege ich einen Umbruch in mein Bild. I-HaTeD2 PHP 1 08.10.2006 12:19
Was passiert da? Timber PHP 2 14.06.2006 18:55


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:04 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC