php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.05.2005, 10:11  
Gast
 
Beiträge: n/a
Standard Datumsberechnugn

Hallo und gumo

Ich hab hier ne Datumberechnung.
als den unterschied zwischen 2 Datumsangaben genauer gesagt.
ich hab folgendes

PHP-Code:
<?php
$abflug 
mktime(0,0,0,$_POST['monatab'],$_POST['tagab'],$_POST['jahrab']);
$ankunft mktime(0,0,0,$_POST['monatan'],$_POST['tagan'],$_POST['jahran']);
$diff $ankunft $abflug;
$tage $diff 86400;


?>
so berechne ICH die Tages differenz....
gibts da ne bessere Möglichkeit???
denn wenn ich z.B: von 12.12.2005 auf 03.01.2006 rechne kommt nicht das richtige ergebnis raus.......
ausserdem will ich die einzelnen datumsangaben später eh in ein array ablegen um es dann per foreach auszulesen und in die DB zu packen.
bisher hab ich immer wie oben gerechnet und hab dann per for-schleife die datumsangaben in ein array gepackt, konnte ich nur weil ich die tage durch obige rechnung hatte.
mir ist aber aufgefallen das es bei obiger rechnung aus zu falschen ergebnisen innerhalt eines jahres kommen kann.....

hat da jemand einen guten vorschlag?


MfG Julied


EDIT: Sorry, da ich das abschreiben musste weil ich nhier mit meinem Notebook keinen I-zugang hab is mir leider dieser fehler unterlaufen Igä......habs nun editiert so wie es bei mir ist.
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.05.2005, 10:19  
Erfahrener Benutzer
 
Registriert seit: 16.08.2007
Beiträge: 702
PHP-Kenntnisse:
Anfänger
Igäl befindet sich auf einem aufstrebenden Ast
Standard

Mir scheint, du benutzt hier für die Ankunft und den Abflug die selben Übergabeparameter... gibts danicht immer 0? *g*

Timestamp vergleichen um die Tage herauszufinden find ich eigentlich ne gute Idee... Allerdings würde ich das Ergebnis noch Abrunden oder aus $tage nen Integer machen (oder weiss der Kukuk was man alles machen kann um die Kommastellen los zu werden)
__________________
Das Recht auf Dummheit gehört zur Garantie der freien Entfaltung der Persönlichkeit.
Mark Twain
Igäl ist offline  
Alt 10.05.2005, 10:30  
Gast
 
Beiträge: n/a
Standard

ja das mit den kommas kannst du ja mit ceil($tage) machen....
das is wohl der einfachere part....
aber mir ist da was eingefallen....
kann ich ned ne forschleife machen??
like this

PHP-Code:
<?php
for($datum=0;$datum<=23;$datum++) /* Da man nur max 23 Tage parken 
darf...wg. dauerparker. */
{
$datum_array $abflug;
if(
$abflug == $ankunft)
{
 break;
}
else
{
$abflug += 86400;
}
}
$datum_anz count($datum_array);
?>
würd ich somit nicht die korrekten datumsangaben bekommen???
und somit auch automatisch einen int für die anzahl der datumsangaben?


ist diese Lösung gut oder totaler mist?

MfG
Julied
 
Alt 10.05.2005, 10:38  
Gast
 
Beiträge: n/a
Standard

Vorschlag (ungetestet):
Code:
<?php
$vonDatum  = gregoriantojd($_POST['monatab'],$_POST['tagtab'],$_POST['jahrab']);
$bisDatum  = gregoriantojd($_POST['monatan'],$_POST['tagtan'],$_POST['jahran']);
echo "Differenz in Tagen= ". ($bisDatum - $vonDatum);
?>
mfG ~dilemma~
 
Alt 10.05.2005, 10:46  
Gast
 
Beiträge: n/a
Standard

habs getestet...
das gleiche prob mit 2006 wie oben...
aber bin grad dabei mein 2. beispiel zu testen..
mal sehen ob es klappt...
 
Alt 10.05.2005, 11:18  
Gast
 
Beiträge: n/a
Standard

Sorry, da war ein Tippfehler drin!
Folgendes ist getestet und klappt:
Code:
<?php

$_POST['monatab'] = "12";
$_POST['tagab']  = "12";
$_POST['jahrab'] = "2005";

$_POST['monatan'] = "01";
$_POST['tagan']  = "03";
$_POST['jahran'] = "2006";

print '<pre>'; print_r($_POST); print '</pre>';

$vonDatum  = gregoriantojd($_POST['monatab'],$_POST['tagab'],$_POST['jahrab']);
$bisDatum  = gregoriantojd($_POST['monatan'],$_POST['tagan'],$_POST['jahran']);

echo "Differenz in Tagen= ". ($bisDatum - $vonDatum);

?>
mfG ~dilemma~
 
Alt 10.05.2005, 11:38  
Gast
 
Beiträge: n/a
Standard

die lösung is eigentlich perfekt für mich...
wenn ich nicht schon meine 2 sachen zu einer do while schleife verbunden hab.
wobei ich deine lösung an einer anderen stelle sehr gut einsetzen kann...
also danke dilemma....
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.