Jag är ute efter en funtion att räkna ut åldern genom att jämföra två timestamps, $born och $now. hur ska jag gå tillväga?
------------------
//Erik Jansson
7 svar · 359 visningar · startad av braver
Jag är ute efter en funtion att räkna ut åldern genom att jämföra två timestamps, $born och $now. hur ska jag gå tillväga?
------------------
//Erik Jansson
Nanne: Detta
<?
$born=strtotime("2000/10/20");
$now=time();
echo date ("M-d-Y", mktime (0,0,$now-$born,0,0,0));
?>
verkar inte fungera. Hur hade du tänkt dig? Det verkar som tredje parametern till mktime (sekunder) måste vara mellan 0 och 59...
braver: Vilken enhet till du ha på skillnaden?
Duger det med antal dagar funkar:
<?
$born=strtotime("1979/01/27");
$today=strtotime(date("Y/m/d"));
echo "Skillnad i dagar: ".floor(($today-$born)/86400)."\n";
?>
/nicclas - http://www.nyhetsrubriker.com
Dessutom skulle väl inte
echo date ("M-d-Y", mktime (0,0,$now-$born,0,0,0)); räkna ut någon ålder utan skriva ut ett datum! :e
------------------
woodi
jag hittade en function på www.phpbuilder.com (bra sida!) som borde göra jobbet!
<?
Function DateDiff ($interval, $date1,$date2) {
// get the number of seconds between the two dates
$timedifference = $date2 - $date1;
switch ($interval) {
case "w":
$retval = bcdiv($timedifference ,604800);
break;
case "d":
$retval = bcdiv( $timedifference,86400);
break;
case "h":
$retval = bcdiv ($timedifference,3600);
break;
case "n":
$retval = bcdiv( $timedifference,60);
break;
case "s":
$retval = $timedifference;
break;
}
return $retval;
}
?>
Fungerar exact som ASP:s function. Det gäller bara att räkna ut hur många sekunder det är på ett år då! Problemet är med skottår så det kanske inte fungerar så bra men det är iallafall nåt!
/Nisse
------------------
www.bosma.space2u.com
[Redigerat av niels den 01 nov 2000]
Ehh, det är ju precis som den kod jag skrev ovan (fast klumpigare ;) ). Dessutom räknare jag ut att det går 86400 sekunder på en dag. Men problemet är ju som du påpekar, man vet inte hur många sekunder det går på tex en månad om man inte håller reda på vilken månad det är, eller på ett år om man inte vet om det är skottår eller ej.
/nicclas - http://www.nyhetsrubriker.com 10/10 :)
Jag kodade en function i morse som verkar fungera fint:
function calc_age($b_year,$b_month,$b_day){
//Get current date:
$time = getdate(time());
$n_year = $time["year"];
$n_timestamp = time();
//This year birthday:
$b_timestamp = mktime(0,0,0,$b_month,$b_day,$n_year);
//Calculate age:
$age = $n_year - $b_year;
$age--;
if($n_timestamp >= $b_timestamp) {
$age++;
}
return $age;
}
------------------
www.bosma.space2u.com