Помощ: Скрипт за изчисляване на годините

sksdesign

Registered
Моля някой да ми помогне със скрипт за изчисляване на годините с ТОЧНОСТ смисал не само да извади от сегашната година мойта година на раждане ми дата месец година... моляви помогнете :(
 
Епа може да ползваш някъв подобен алгоритъм :

имаш за датата на раждане :
година
месец
ден

имаш за днешната дата :
дГодина
дМесец
дДен


и имаш масив със дните в месеците [31,28,etc.] като месец i ти отговаря на [i-1]

и правиш

while(дГодина != година && дМесец != месец && дДен != ден)
{
тука в някви променливи събирам като съответно 1во дните, после месеците, после годините и нулираш всичко при нова година
}
Остава да си го напишеш :D
 
Код:
<script type="text/javascript">

var Data = new Date();

var myBirth = new Object();

Data.denMesec = Data.getDate();

Data.mesecInt = Data.getMonth();

Data.godina = Data.getYear();
Data.godina = (Data.godina<2000)? (Data.godina+1900):Data.godina;
Data.visokosna = ((Data.godina%4) == 0)? true:false;



var months = new Array();

months[months.length] = 31;
months[months.length] = (Data.visokosna)? 29:28;
months[months.length] = 30;
months[months.length] = 30;
months[months.length] = 31;
months[months.length] = 29;
months[months.length] = 31;
months[months.length] = 31;
months[months.length] = 30;
months[months.length] = 31;
months[months.length] = 30;
months[months.length] = 31;

Data.check = function(){
	
	myBirth.den = document.forms.bornForm.den.value;
	myBirth.mesec = document.forms.bornForm.mesec.options[document.forms.bornForm.mesec.selectedIndex].value;
	
	myBirth.godini = (Data.godina-document.forms.bornForm.year.value);
	myBirth.godini = (myBirth.mesec < Data.mesecInt)? myBirth.godini: ((myBirth.mesec == Data.mesecInt)&&(myBirth.den<=Data.denMesec))? myBirth.godini:(myBirth.godini-1);
	
	alert("Вие сте на "+myBirth.godini+"години!");
	
}


document.write("<form action='javascript: Data.check();' method='post' id='bornForm'>");

document.write("<input type='text' name='den' value='Ден на раждане' /><br /><br />");

document.write("<select name='mesec'>");
document.write("<option value='0'>Януари</option>");
document.write("<option value='1'>Февруари</option>");
document.write("<option value='2'>Март</option>");
document.write("<option value='3'>Април</option>");
document.write("<option value='4'>Май</option>");
document.write("<option value='5'>Юни</option>");
document.write("<option value='6'>Юли</option>");
document.write("<option value='7'>Август</option>");
document.write("<option value='8'>Септември</option>");
document.write("<option value='9'>Октомври</option>");
document.write("<option value='10'>Ноември</option>");
document.write("<option value='11'>Декември</option>");
document.write("</select><br /><br />");

document.write("<input type='text' name='year' value='Година с цифри' /><br /><br />");

document.write("<input type='submit' value='Провери' /><br /><br />");

document.write("</form>");

</script>
Изчислява го точно. Можеш да си тестваш
 
Мисля че иска със php. Нещо като при регистрация да въвежда една дата и при показване на профил да изписва годините... :)
 
Ето сега.

<?php

$birthday = strtotime("03.11.1992 15:32"); // Тогавa съм роден аз :]
$today = time();

$diff = $today - $birthday;

$godini = strftime("%Y", $diff);
$godini = (int)$godini - 1970; // UNIX формата почва от 1.1.1970, затова 1971 година означава 1 година.

$dni = strftime("%d", $diff);
$meseci = (int)strftime("%m", $diff) - 1;
$chasove = strftime("%H", $diff);
$minuti = strftime("%M", $diff);

echo "Живея вече ".$godini." години, ".$meseci." месеца, ".$dni." дни, ".$chasove." часа и ".$minuti." минути!!";
?>

Ако не ти трябват минутите и часовете не им ползвай променливите. И можеш да подадеш датата в червеното само така: 03.11.1992 без час и минута. :?:
 

Back
Горе