php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 33 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 05-06-2007, 16:32
tino
 Newbie
Links : Onlinestatus : tino ist offline
Registriert seit: Jun 2007
Beiträge: 40
tino ist zur Zeit noch ein unbeschriebenes Blatt
tino eine Nachricht über ICQ schicken
Standard [Funktion] Alterberechnung

Hallo Leutz,

hab nen folgendes Problem ... (ich brauch einfach diskussionen, dass hilft einfach weiter)

hab nen tabelle mit drei spalten bestehend aus einfachen zahlenwerten (tag, monat und jahr) *ernsthaft*

nun möcht ich den Alterberechnungen haben von allen Einträgen.

ist das code richtig? obwohl es nicht so ganz funzt.

SELECT
CAST(
CAST(jahr AS CHAR(4)) +
REPLACE(STR(monat,2),' ',0) +
REPLACE(STR(tag,2),' ',0)
AS DATETIME) as Datum from date

oder einfacher

SELECT
CAST(
STR(jahr*10000+monat*100+tag)
AS DATETIME) as Datum from Date

brauche hilfe um das auszurechnen wie alt er ist ... danke.

gruss tino
Mit Zitat antworten
  #2 (permalink)  
Alt 05-06-2007, 16:42
jens76
 Member
Links : Onlinestatus : jens76 ist offline
Registriert seit: Dec 2004
Beiträge: 328
jens76 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

diskusionseröffnung:

warum nutzt du dazu nicht DATE oder DATETIME fleder?
dann kannst das datum in einem feld speichern und und mit NOW() hast das aktuelle datum.
jetzt mußt nur noch NOW() - Datumsfeld rechnen..

das geht mit mysql super, hab baer jetzt nicht gerade die datumsfunktionen zur hand also... googlen
Mit Zitat antworten
  #3 (permalink)  
Alt 05-06-2007, 17:08
prego
 PHP Senior
Links : Onlinestatus : prego ist offline
Registriert seit: May 2005
Ort: Herborn
Beiträge: 1.609
prego ist zur Zeit noch ein unbeschriebenes Blatt
Standard

http://dev.mysql.com/doc/refman/5.0/...ction_datediff

dann halt noch von Tagen in das was man will umrechnen....

Feldtyp = date/datetime !
Mit Zitat antworten
  #4 (permalink)  
Alt 05-06-2007, 17:10
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nein, nein, der junge mann darf nichts an der tabelle verändern...
Mit Zitat antworten
  #5 (permalink)  
Alt 05-06-2007, 17:20
prego
 PHP Senior
Links : Onlinestatus : prego ist offline
Registriert seit: May 2005
Ort: Herborn
Beiträge: 1.609
prego ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ungetestet:

Code:
CAST(CONCAT(jahr, '-', monat, '-', tag) AS date)
auch wenn ich das völlig sinnfrei finde
Mit Zitat antworten
  #6 (permalink)  
Alt 05-06-2007, 22:09
brauni54
 Member
Links : Onlinestatus : brauni54 ist offline
Registriert seit: Feb 2005
Beiträge: 345
brauni54 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn du tag, monat und jahr in extra spalten hast kannst du doch deine query machen und dann folgendes tun
PHP-Code:
# wenn das dein variablen für tag, monat und jahr sind
# $tag , $monat , $jahr
$heute_tag=date("d");
$heute_monat=date("m");
$heute_jahr=date("Y");
$alter=$heute_jahr-$jahr;
if (
mktime(0,0,0,$heute_monat,$heute_tag,$heute_jahr) < mktime(0,0,0,$monat,$tag,$heute_jahr))
{
$alter--;
}
# und wenn du gleich das errechnete alter für jeden in die db speicherst 
# mußt de nur noch das alter auslesen und nicht jedesmal rechnen 
das sollte doch gehen wenn ich nicht irre
Mit Zitat antworten
  #7 (permalink)  
Alt 05-06-2007, 23:59
tino
 Newbie
Links : Onlinestatus : tino ist offline
Registriert seit: Jun 2007
Beiträge: 40
tino ist zur Zeit noch ein unbeschriebenes Blatt
tino eine Nachricht über ICQ schicken
Standard

hab das so eingefügt ...

PHP-Code:
# wenn das dein variablen für tag, monat und jahr sind
# $tag , $monat , $jahr
                
$heute_tag date("d");
$heute_monat date("m");
$heute_jahr date("Y");
$alter $heute_jahr-$jahr;
if (
mktime(0,0,0,$heute_monat,$heute_tag,$heute_jahr) < mktime(0,0,0,$monat,$tag,$heute_jahr))
{
$alter--;
}
# und wenn du gleich das errechnete alter für jeden in die db speicherst 
# mußt du nur noch das alter auslesen und nicht jedesmal rechnen 
jedoch erscheint so ein fehlermeldung...

Zitat:
Notice: Undefined variable: jahr in /home/nba295/public_html/Tino/index3.php on line 235

Notice: Undefined variable: monat in /home/nba295/public_html/Tino/index3.php on line 236

Notice: Undefined variable: tag in /home/nba295/public_html/Tino/index3.php on line 236
es wurde jedoch berechnet, aber es erscheint bei allen "2007 Jahre alt"

was konnte das nur sein? würde mich auf schnelle hilfe freuen. gruss tino
Mit Zitat antworten
  #8 (permalink)  
Alt 06-06-2007, 00:35
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von tino
jedoch erscheint so ein fehlermeldung...
Na die Variablen, auf die du da zugreifen willst, existieren gar nicht ...
Zitat:
würde mich auf schnelle hilfe freuen.
Gewöhn' dir das doch bitte mal ab ... und schnapp du dir lieber mal "schnell" ein gutes Buch oder Grundlagen-Tutorial ...
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 06-06-2007, 00:38
tino
 Newbie
Links : Onlinestatus : tino ist offline
Registriert seit: Jun 2007
Beiträge: 40
tino ist zur Zeit noch ein unbeschriebenes Blatt
tino eine Nachricht über ICQ schicken
Standard

Zitat:
Na die Variablen, auf die du da zugreifen willst, existieren gar nicht ...
na und ob existieren variablen ....

Geändert von tino (06-06-2007 um 00:57 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 06-06-2007, 00:51
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von tino
na und ob existieren variablen ....
OMFG ...

Wenn du alles besser weisst, als a) Leute mit etwas mehr Erfahrung als du, und b) sogar der PHP-Interpreter selber - dann such dir doch bitte einen anderen Platz, wo du Leuten auf den Geist gehen kannst.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #11 (permalink)  
Alt 06-06-2007, 00:52
tino
 Newbie
Links : Onlinestatus : tino ist offline
Registriert seit: Jun 2007
Beiträge: 40
tino ist zur Zeit noch ein unbeschriebenes Blatt
tino eine Nachricht über ICQ schicken
Standard

boah ... was ist denn hier los?

da sind welche leutz die hier
und der rest ... mit denen ich gehen kann...

man man man..

LÖSUNG:

die variablen müssen definiert werden...

und es hat geklappt. danke nochmals

ALTERANGABE konnte auch angezeigt werden.

Geändert von tino (06-06-2007 um 00:58 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 06-06-2007, 08:44
jens76
 Member
Links : Onlinestatus : jens76 ist offline
Registriert seit: Dec 2004
Beiträge: 328
jens76 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von brauni54
wenn du tag, monat und jahr in extra spalten hast kannst du doch deine query machen und dann folgendes tun
PHP-Code:
# wenn das dein variablen für tag, monat und jahr sind
# $tag , $monat , $jahr
$heute_tag=date("d");
$heute_monat=date("m");
$heute_jahr=date("Y");
$alter=$heute_jahr-$jahr;
if (
mktime(0,0,0,$heute_monat,$heute_tag,$heute_jahr) < mktime(0,0,0,$monat,$tag,$heute_jahr))
{
$alter--;
}
# und wenn du gleich das errechnete alter für jeden in die db speicherst 
# mußt de nur noch das alter auslesen und nicht jedesmal rechnen 
das sollte doch gehen wenn ich nicht irre
$jahr_heut -$jahr???

was soll der mist denn? wenn die person nun aber noch nicht geburtstag hatte was dann? dann macht man die einfach ein jahr älter????
also ich fänd fas nicht gut! da ich erst ende des jahres geburtstag hab würde ich schon im januar als ein jahr älter gelten...

ach und wer in der richtung googelt und scriptbeispiele mit dem unix-timestamp findet... der ist auch aufm holzweg! der Timestamp beachtet keine schaltjahre und was is wenn der probant vor 1970 geboren ist?

also schon die jahre monate und tage in der DB ausrechen oder im php schön über if vergleiche. anders gehts nicht!
Mit Zitat antworten
  #13 (permalink)  
Alt 06-06-2007, 11:45
brauni54
 Member
Links : Onlinestatus : brauni54 ist offline
Registriert seit: Feb 2005
Beiträge: 345
brauni54 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
was soll der mist denn? wenn die person nun aber noch nicht geburtstag hatte was dann? dann macht man die einfach ein jahr älter????
du musst schon richtig lesen!
PHP-Code:
if (mktime(0,0,0,$heute_monat,$heute_tag,$heute_jahr) < mktime(0,0,0,$monat,$tag,$heute_jahr))
{
$alter--;
}
# wenn dein user in diesem jahr noch nicht geburtstag hatte dann
# $alter--; -> sprich alter minus 1 und scon ist alles io 
in meinem skript haben auch leute vor 1970 birthday und es wird alles richtig gerechnet
vielleicht solltest du erst testen!
warum brauchst du das schaltjahr? wenn jemand am 29.02 geb. hat, dann feiert er trotzdem jedes jahr und nicht nur alle 4 jahre! also ist das in der berechnung völlig irrelevant

außerdem kannst du mit
PHP-Code:
if (!checkdate($monat$tag$jahr))
{
echo(
"Dein Geburtsdatum ist nicht korrekt eingegeben!<br>");

scon bei der eingabe prüfen ob das datum überhaupt eins ist, da werden auch schaltjahre berücksichtigt siehe checkdate
Mit Zitat antworten
  #14 (permalink)  
Alt 06-06-2007, 15:07
floriankf
 Newbie
Links : Onlinestatus : floriankf ist offline
Registriert seit: Jul 2006
Beiträge: 36
floriankf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo!

Ich hab da mal was probiert...
Vielleicht hilft dir dieser Code weiter.

PHP-Code:
function alter($date) {

list(
$tag$monat$jahr) = explode('.'$date);

if(
$jahr <= date('y')) {
$jahr += 2000;
} elseif(
$jahr 100) {
$jahr += 1900;
}

$alt date('Y') - $jahr;


if((
$monat date('m')) || (($monat == date('m')) && ($tag date('d')))) {
$alt--;
}

return 
$alt;
}

$geb '10.07.1989';

// Ausgabe 17
echo alter($geb); 
Gruß, Flo
Mit Zitat antworten
  #15 (permalink)  
Alt 06-06-2007, 15:13
brauni54
 Member
Links : Onlinestatus : brauni54 ist offline
Registriert seit: Feb 2005
Beiträge: 345
brauni54 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

geholfen hat es dem tino ja schon
viele wege führen nach rom
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:47 Uhr.