 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Fragen stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
15.05.2008, 17:14
|
#1
|
|
TP-Newbie
Registriert seit: May 2008
Ort: Starnberg, Bayern
|
[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
|
|
|
15.05.2008, 17:48
|
#2
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
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
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
chmod( 'internal.php', 0444 );
|
|
|
15.05.2008, 17:54
|
#3
|
|
TP-Supporter
Registriert seit: Nov 2005
|
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)
|
|
|
22.05.2008, 23:31
|
#4
|
|
TP-Newbie
Registriert seit: May 2008
Ort: Starnberg, Bayern
|
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.^^
|
|
|
24.05.2008, 13:35
|
#5
|
|
TP-Supporter
Registriert seit: Nov 2005
|
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.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:57 Uhr.
|
 |