SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 24.10.2003, 12:03:25
thedoctor thedoctor ist offline
Anfänger
 
Registriert seit: Oct 2003
Beiträge: 3
jahre, monate und tage zählen

Hallo!
Ich möchte gerne von einem bestimmten Datum (kann auch Jahre zurück liegen) bis zum heutigen Datum die Jahre, Monate und Tage zählen. Also dass zum Beispiel da steht "Sei dem (datum) sind bis heute xx Jahre, xx Monate und xx Tage bis heute vergangen. Bitte um Antwort!

mfg thedoctor
Mit Zitat antworten
  #2  
Alt 24.10.2003, 13:51:06
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Das könntest du zum Beispiel so machen:

Zunächst erstellst du mit der Funktion mktime() den Timestamp des Datum von wo aus du die Sekunden zählen willst und speicherst diesen in der Variablen $datum_alt.

PHP-Code:
$heute=time(); //DER AKTUELLE TIMESTAMP
$dauer=$heute-$datum_alt//DIE SEKUNDEN DIE ZWISCHEN DIESEN BEIDEN DATEN LIEGEN

echo "Seit dem " date("d.m.Y"$datum_alt) . " sind " $dauer " Sekunden vergangen."
Mit Zitat antworten
  #3  
Alt 24.10.2003, 14:30:00
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 43
Beiträge: 992
Hi @ll

wie gefällt euch folgende Möglichkeit:

Code:
    function daysDiff($y1, $m1, $d1) {
        $y2 = date("Y");
        $m2 = date("m");
        $d2 = date("d");
        $time1 = mktime(0,0,0,$m1,$d1,$y1);
        $time2 = mktime(0,0,0,date("m"),date("d"),date("Y"));
        if (($time1 - $time2)<0) {
            $y = $y2 - $y1;
            $m = $m2 - $m1;
            $d = $d2 - $d1;
            $display = "vergangen ";
        } else {
            $y = $y1 - $y2;
            $m = $m1 - $m2;
            $d = $d1 - $d2;
            $display = "noch ";
        }
        $daysInMonth = date("t",$m1);
        if ($d < 0) {
            $m--;
            $d = $d + $daysInMonth;
        }
        if ($m < 0) {
            $y--;
            $m = $m + 12;
        }

        if ($y > 0) {
            $display .= $y==1 ? "1 Jahr und " : "$y Jahre und ";
        }
        $display .= $m==1? "1 Monat und " : "$m Monate und ";
        $display .= $d==1 ? "1 Tag " : "$d Tage ";
        return $display;
    }
    
    echo daysDiff(2003, 11, 24);
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #4  
Alt 24.10.2003, 14:59:10
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Ist die Lösung für so ein vergleichsweise kleines Problem ein bisschen umständlich? Meiner Meinung nach kann man dies auch mit wenigen Zeilen lösen (s.o.).
Mit Zitat antworten
  #5  
Alt 24.10.2003, 15:06:05
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 43
Beiträge: 992
kommt drauf an was du ausgeben willst

hast dir das Ding mal genauer angeschaut?
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #6  
Alt 24.10.2003, 15:15:58
thedoctor thedoctor ist offline
Anfänger
 
Registriert seit: Oct 2003
Beiträge: 3
Hey, soweit funktioniert es, jetzt gibt er mir bloss noch eine falsche Jahreszahl aus. Aber das werde ich (hoffentlich) in den Griff bekommen. Vielen Dank euch 2! Ihr habt mir sehr geholfen

mfg thedoctor

Geändert von thedoctor (24.10.2003 um 15:23:05 Uhr)
Mit Zitat antworten
  #7  
Alt 24.10.2003, 15:24:33
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 43
Beiträge: 992
Code:
    function daysDiff($y1, $m1, $d1) {
        $y2 = date("Y");
        $m2 = date("m");
        $d2 = date("d");
        $time1 = mktime(0,0,0,$m1,$d1,$y1);
        $time2 = mktime(0,0,0,date("m"),date("d"),date("Y"));
        if (($time1 - $time2)<0) {
            $y = $y2 - $y1;
            $m = $m2 - $m1;
            $d = $d2 - $d1;
        } else {
            $y = $y1 - $y2;
            $m = $m1 - $m2;
            $d = $d1 - $d2;
        }
        $daysInMonth = date("t",$m1);
        if ($d < 0) {
            $m--;
            $d = $d + $daysInMonth;
        }
        if ($m < 0) {
            $y--;
            $m = $m + 12;
        }

        if ($y > 0) {
            $display .= $y==1 ? "1 Jahr, " : "$y Jahre, ";
        }
        $display .= $m==1? "1 Monat und " : "$m Monate und ";
        $display .= $d==1 ? "1 Tag " : "$d Tage ";
        return $display;
    }
    
    echo daysDiff(2003, 11, 24);
    
    echo "seit dem 20.09.00 sind ".daysDiff(2000,9,24)." vergangen";
an der Funktion wurden nur Formatierungen gemacht
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #8  
Alt 24.10.2003, 15:29:02
thedoctor thedoctor ist offline
Anfänger
 
Registriert seit: Oct 2003
Beiträge: 3
Danke, danke ;-)
Es funktioniert jetzt alles!

mfg thedoctor
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


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


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt