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

SELFPHP


Professional CronJob-Service

Suche


International PHP Conference


WebTech Conference



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



PHP Summit


Software Architecture Summit


:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 
HTML5 Days


JavaScript Days


:: 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:
 
 

Deine Leidenschaft ist die Unterwasserfoto-grafie?


Dann ist Qozido genau das Richtige für Dich!

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler ist da!

www.qozido.de

 


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 08.12.2006, 17:58:51
Benutzerbild von juergen
juergen juergen ist offline
Junior Member
 
Registriert seit: Nov 2004
Ort: Schmitten
Alter: 56
Beiträge: 318
juergen befindet sich auf einem aufstrebenden Ast
Datum und time()

Hallo Forum,

nun habe ich doch ein Problem mit dem Datum und time().
Ich möchst von dem heutigen Datum (z.B. 08.12.2006) ein anderes Datum (z.B. 15.09.1965) abziehen um zu erfahren das der Unterschied nicht kleiner ist als 15 Jahre (ca. 5475 Tage) ist. Die Schaltjahre sollen berücksichtigt werden. Ich habe zunächst mal nur die Jahreszahlen von einander abgezogen und auf kleiner 15 geprüft. Das geht auch so ganz gut. Aber ich möchte natürlich die Tage und Monate auch berücksichtigen.

Hat da jemand eine zündende Idee? Ich habe leider noch keine Erfahrung mit time() oder anderen Zeitformen.

Danke für Eure Hilfe
Gruß Jürgen
__________________
--------------------------------
Gruß Jürgen

www.kenyasafaris.de
Mit Zitat antworten
  #2  
Alt 08.12.2006, 18:12:27
BenniG. BenniG. ist offline
Member
 
Registriert seit: Oct 2006
Beiträge: 610
BenniG. befindet sich auf einem aufstrebenden Ast
AW: Datum und time()

Mach doch folgendes, wenn der Jahresunterschied >=15 ist Prima, wenn der Jahresunterschied 14 ist, dann schaust du nach dem Monat und Tag, ist der Monat größer=>gut, ist der Monat gleich, dann checkst du noch den Tag..

Damit kannst du mit 3-4 Abfragen feststellen ob zwischen a und b 15Jahre liegen, die Differenz in Tagen rauszubekommen ist mit php nicht so einfach (vor allem bei Daten vor 1970 unter Windows)
Mit Zitat antworten
  #3  
Alt 08.12.2006, 18:15:03
Benutzerbild von juergen
juergen juergen ist offline
Junior Member
 
Registriert seit: Nov 2004
Ort: Schmitten
Alter: 56
Beiträge: 318
juergen befindet sich auf einem aufstrebenden Ast
AW: Datum und time()

Hallo BenniG.,

keine schlechte Idee mal sehn was ich draus mache. Ich Poste das Ergebnis wenn es vorliegt.

Gruß Jürgen
__________________
--------------------------------
Gruß Jürgen

www.kenyasafaris.de
Mit Zitat antworten
  #4  
Alt 08.12.2006, 19:28:10
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 66
Beiträge: 4.001
meikel befindet sich auf einem aufstrebenden Ast
AW: Datum und time()

Vorher mal das durchlesen:
http://www.php.net/manual/de/ref.calendar.php
Mit Zitat antworten
  #5  
Alt 09.12.2006, 10:11:53
Benutzerbild von juergen
juergen juergen ist offline
Junior Member
 
Registriert seit: Nov 2004
Ort: Schmitten
Alter: 56
Beiträge: 318
juergen befindet sich auf einem aufstrebenden Ast
AW: Datum und time()

Hallo Forum,

hier die Lösung. Wenn noch einer eine Idee hat um es zu verbessern! Ich freue mich drauf.
PHP-Code:
$_be_alter "09.12.1992"// Das Alter des Users das er in ein Formular eingibt.

$_jahre substr($_be_alter64)+15;
$_monate substr($_be_alter32);
$_tage substr($_be_alter02);


if (
date("Y") > $_jahre){
$_ergebnis "Der User ist <b>älter</b> als 15 Jahre!";    
}elseif ((
date("Y") >= $_jahre) and (date("n") > $_monate)){
$_ergebnis "Der User ist <b>älter</b> als 15 Jahre!";
}elseif   ((
date("n") >= $_monate) and (date("Y") >= $_jahre) and (date("d") >= $_tage)){
$_ergebnis "Der User ist <b>älter</b> als oder genau 15 Jahre!";
}else{
$_ergebnis "<b style=\"color:#ff0000;\">Der User ist jünger als 15 Jahre!</b>";
}
echo 
$_ergebnis
Danke für die Hilfe
__________________
--------------------------------
Gruß Jürgen

www.kenyasafaris.de
Mit Zitat antworten
  #6  
Alt 09.12.2006, 13:15:51
Andes Andes ist offline
Member
 
Registriert seit: Jun 2006
Ort: Bayern
Alter: 46
Beiträge: 930
Andes befindet sich auf einem aufstrebenden Ast
AW: Datum und time()

Dies wäre auch noch eine Möglichkeit. Es muss aber vorher eine Prüfung auf das richtige Datumsformat erfolgen.

PHP-Code:
$geb '10.12.1906';

list(
$tag,$mon,$jahr) = explode('.'$geb);

$ts mktime(0,0,0,$mon$tagdate("Y"));

if(
$ts mktime()) $yd date("Y") - $jahr 1;
else 
$yd date("Y") - $jahr;

if(
$yd 15) echo 'Du bist zu jung.';
else echo 
'Dein Alter passt.'
__________________
Grüße Andes

Geändert von Andes (09.12.2006 um 13:18:36 Uhr)
Mit Zitat antworten
  #7  
Alt 09.12.2006, 13:26:44
Benutzerbild von juergen
juergen juergen ist offline
Junior Member
 
Registriert seit: Nov 2004
Ort: Schmitten
Alter: 56
Beiträge: 318
juergen befindet sich auf einem aufstrebenden Ast
AW: Datum und time()

Hallo Andes,

du prüfst nur auf Größer Jahre.
PHP-Code:
($yd 15
Was ist wenn das Jahr gleich ist? Dann muß man noch auf Monat und eventuell wenn der auch nicht Größer sondern Gleich ist auf Tage Größer Gleich prüfen!!

Das ist sauberer als bei mir. Das übernehme ich. Danke
PHP-Code:
list($tag,$mon,$jahr) = explode('.'$geb); 
Viel Spaß
__________________
--------------------------------
Gruß Jürgen

www.kenyasafaris.de
Mit Zitat antworten
  #8  
Alt 09.12.2006, 13:58:16
Andes Andes ist offline
Member
 
Registriert seit: Jun 2006
Ort: Bayern
Alter: 46
Beiträge: 930
Andes befindet sich auf einem aufstrebenden Ast
AW: Datum und time()

Dieser Prüfung auf Tag und Monat kannst du hiermit ausweichen.
PHP-Code:
$ts mktime(0,0,0,$mon$tagdate("Y")); 
Damit wird der Timestamp des Geburtstags auf das aktuelle Jahr bezogen erstellt. Mit diesem wird dann geprüft ob der Tag des Geburtstags vor, nach oder gleich dem aktuellem Tag ist.
PHP-Code:
if($ts mktime()) $yd date("Y") - $jahr 1
Liegt der Geburtstag in der Zukunft, wird von der Jahresberechnung ein Jahr abgezogen.

Bsp.
Geburtstag(Geburtstag bezogen auf aktuelles Jahr)
08.12.1991(08.12.2006) = 15 Jahre alt $ts < mktime()
09.12.1991(09.12.2006) = 15 Jahre alt $ts <= mktime()
10.12.1991(10.12.2006) = 14 Jahre alt $ts > mktime() aber 2006 - 1991 = 15, da das Datum (bezogen auf das aktuelle Jahr) in der Zukunft liegt wird 1 Jahr abgezogen.
__________________
Grüße Andes

Geändert von Andes (09.12.2006 um 14:01:12 Uhr)
Mit Zitat antworten
  #9  
Alt 09.12.2006, 14:06:10
Benutzerbild von juergen
juergen juergen ist offline
Junior Member
 
Registriert seit: Nov 2004
Ort: Schmitten
Alter: 56
Beiträge: 318
juergen befindet sich auf einem aufstrebenden Ast
AW: Datum und time()

Hallo Andes,

na super. Das habe ich nicht so gesehen. Es funktioniert.

Danke für die Hilfe.
__________________
--------------------------------
Gruß Jürgen

www.kenyasafaris.de
Mit Zitat antworten
  #10  
Alt 09.12.2006, 15:20:38
Benutzerbild von meikel
meikel meikel ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 66
Beiträge: 4.001
meikel befindet sich auf einem aufstrebenden Ast
AW: Datum und time()

Offenbar nimmt mich hier keiner für voll... <ggg>

http://test.php-help.info/KalenderFunktionen-1/ (Quelltext wird angezeigt)

PHP-Code:
$datum1 '6.6.1966';
$datum2 '9.9.1999';

$d1 explode('.'$datum1);
$d2 explode('.'$datum2);

$jahre = (int)((GregorianToJD($d2[1], $d2[0], $d2[2]) - 
                      
GregorianToJD($d1[1], $d1[0], $d1[2])) / 365.25);

printf("<p>Differenz in Jahren<br>
Datum 1: %s<br>
Datum 2: %s<br>
Jahre : %s Jahre"
,
    
$datum1,
    
$datum2,
    
$jahre); 

Geändert von meikel (09.12.2006 um 15:21:18 Uhr)
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datenimport mit ODBC odie MySQL 4 27.11.2006 15:28:18
Kein Datum in der DB theaims PHP Grundlagen 1 15.07.2006 04:30:07
Datum korrekt ausgeben aus Datenbank Esnabur PHP Grundlagen 6 21.03.2006 12:38:03
MySQL Datum (2005-09-19) in Timestamp umwandeln Don Stefano PHP Grundlagen 3 11.03.2006 20:15:27
Datum - Datum harry PHP Grundlagen 1 23.02.2006 21:47:31


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:38:58 Uhr.


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


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