power-box.de
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 15.05.2008, 17:14   #1
TP-Newbie
 
Registriert seit: May 2008
Ort: Starnberg, Bayern
sourceCode macht alles soweit korrekt

[PHP] Alter aus Geburtsdatum errechnen?


Hallo zusammen,
ich möchte aus einem Geburtsdatum (völlig egal welches Format; Strings, Arrays...) das alter errechnen. Mit den Unixtimestamps hätte ich das innerhalb von 2 Minuten, aber was machen die User die vor 1970 Geburtstag haben?
Irgend eine Idee, Konzept, Quellcode egal mir fällt absolut garnichts ein?!
Danke im voraus,
sourceCode
sourceCode ist offline   Mit Zitat antworten


Alt 15.05.2008, 17:48   #2
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Hallo sourceCode,

nach ca. 18 Sekunden googeln gefunden:
PHP-Code:
<?php

// configure the base date here
$base_day        26;        // no leading "0"
$base_mon        4;        // no leading "0"
$base_yr        1953;        // use 4 digit years!

// get the current date (today) -- change this if you need a fixed date
$current_day        date ("j");
$current_mon        date ("n");
$current_yr        date ("Y");

// and now .... calculate the difference! :-)

// overflow is always caused by max days of $base_mon
// so we need to know how many days $base_mon had
$base_mon_max        date ("t",mktime (0,0,0,$base_mon,$base_day,$base_yr));

// days left till the end of that month
$base_day_diff         $base_mon_max $base_day;

// month left till end of that year
// substract one to handle overflow correctly
$base_mon_diff         12 $base_mon 1;

// start on jan 1st of the next year
$start_day        1;
$start_mon        1;
$start_yr        $base_yr 1;

// difference to that 1st of jan
$day_diff    = ($current_day $start_day) + 1;     // add today
$mon_diff    = ($current_mon $start_mon) + 1;    // add current month
$yr_diff    = ($current_yr $start_yr);

// and add the rest of $base_yr
$day_diff    $day_diff $base_day_diff;
$mon_diff    $mon_diff $base_mon_diff;

// handle overflow of days
if ($day_diff >= $base_mon_max)
{
    
$day_diff $day_diff $base_mon_max;
    
$mon_diff $mon_diff 1;
}

// handle overflow of years
if ($mon_diff >= 12)
{
    
$mon_diff $mon_diff 12;
    
$yr_diff $yr_diff 1;
}

// the results are here:

// $yr_diff      --> the years between the two dates
// $mon_diff     --> the month between the two dates
// $day_diff     --> the days between the two dates

// ****************************************************************************

// simple output of the results 
print "The difference between <b>".$base_yr."-".$base_mon."-".$base_day."</b> ";
print 
"and <b>".$current_yr."-".$current_mon."-".$current_day."</b> is:";
print 
"<br><br>";

// this is just to make it look nicer
$years "years";
$days "days";
if (
$yr_diff == "1"$years "year";
if (
$day_diff == "1"$days "day";

// here we go
print $yr_diff." ".$years.", ";
print 
$mon_diff." month and ";
print 
$day_diff." ".$days;

?>
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
.
Rizzo ist offline   Mit Zitat antworten
Alt 15.05.2008, 17:54   #3
TP-Supporter
 
Benutzerbild von Sand*mann
 
Registriert seit: Nov 2005
Sand*mann macht sich hier sehr viel Mühe
Für das reine Alter sollte das doch wohl genügen?

PHP-Code:
function bestimme_alter($tag,$monat,$jahr)
{
  
//etwaige Führungsnull entfernen
  
$tag $tag 0;
  
$monat $monat 0;
  
$jahr $jahr 0;
  
//aktuelles Datum holen
  
$tag_jetzt date("j");
  
$monat_jetzt date("n");
  
$jahr_jetzt date("Y");
  
//Alter bestimmen
  
$alter $jahr_jetzt $jahr;
  if((
$monat $monat_jetzt) && ($tag $tag_jetzt))
  {
    
$alter $alter 1;
  }
  return 
$alter;

(ungetestet)
Sand*mann ist offline   Mit Zitat antworten
Alt 22.05.2008, 23:31   #4
TP-Newbie
 
Registriert seit: May 2008
Ort: Starnberg, Bayern
sourceCode macht alles soweit korrekt
Thx mal sehen was sich machen lässt, jetzt muss ich mir nur noch was überlegen wie ich die Tage bis zum Geburtstag errechnen kann.^^
sourceCode ist offline   Mit Zitat antworten
Alt 24.05.2008, 13:35   #5
TP-Supporter
 
Benutzerbild von Sand*mann
 
Registriert seit: Nov 2005
Sand*mann macht sich hier sehr viel Mühe
Nichts leichter als das:
PHP-Code:
$tag 24;
$monat 12;
$timestamp_jetzt mktime(0,0,0,date("n"),date("j"),date("Y"));
$timestamp_dann mktime(0,0,0,$monat,$tag,date("Y"));
$sekunden_gesamt $timestamp_dann $timestamp_jetzt;
$tage_gesamt ceil($sekunden_gesamt / (60*60*24));
if(
$tage_gesamt 0)
{
    echo(
"Noch ".$tage_gesamt." Tage bis zum Geburtstag!");
}
else
{
    echo(
"Die Feier war schon :(");

Kurz gesagt errechnest du einfach die Anzahl der Sekunden zwischen jetzt und einen Ereignis. Und aus den Sekunden kannst du ja ganz einfach dann die Tage errechnen.
Sand*mann ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
[PHP] Alter aus Geburtsdatum errechnen? [PHP] Alter aus Geburtsdatum errechnen?
« mySQL fragen von newbie | PHP Kenntnisse vertiefen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
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 09:21 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67