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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
24.10.2003, 11:03:25
|
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
|
24.10.2003, 12:51:06
|
|
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.";
|
24.10.2003, 13:30:00
|
|
Member
|
|
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 44
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);
|
24.10.2003, 13:59:10
|
|
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.).
|
24.10.2003, 14:06:05
|
|
Member
|
|
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 44
Beiträge: 992
|
|
kommt drauf an was du ausgeben willst
hast dir das Ding mal genauer angeschaut?
|
24.10.2003, 14:15:58
|
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 14:23:05 Uhr)
|
24.10.2003, 14:24:33
|
|
Member
|
|
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 44
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
|
24.10.2003, 14:29:02
|
Anfänger
|
|
Registriert seit: Oct 2003
Beiträge: 3
|
|
Danke, danke ;-)
Es funktioniert jetzt alles!
mfg thedoctor
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:33:52 Uhr.
|