#### Archived

This topic is now archived and is closed to further replies.

# days on countdown

## Recommended Posts

How can i change a number to list years, months, weeks, days? e.g. "It is your birthday in 1year 2 months and 3 days" instead of it just showing 424days?

regards
Liam

##### Share on other sites
Is this for people born on Feb 29 who only have a birthday every 4 years? Otherwise the next birthday isn't going to be more than 365 days away.

##### Share on other sites
Haha

sorry that was bad example.. basicaly they can create countdowns for anything i just did the example to show like 1 year and months and weeks and days.. so basicaly need it to convert days into years, months, weeks and days.. if this is possible?

Liam

##### Share on other sites
Hi shocker

Try this
[code]
<?PHP
function NoOfDays(\$Num){

\$years = 0;
\$months = 0;
\$weeks = 0;
\$days = 0;

\$test = floor(\$Num/365.25);
if(\$test > 0){
\$years = \$test;
\$difference = \$Num - (\$years*365.25);
}

\$test = floor(\$difference/30.4);
if(\$test > 0){
\$months = \$test;
\$difference = \$difference - (\$months*30.4);
}

\$test = floor(\$difference/7);
if(\$test > 0){
\$weeks = \$test;
\$difference = \$difference - (\$weeks*7);

}
if (\$difference >= 1){
\$days = \$difference;
}

\$output = "You have to wait \$years Years, \$months Months, \$weeks Weeks, \$days Days until this Day";

return \$output;
}

echo NoOfDays(424);

?>[/code]
it works on the principle that each year has 365.25 days (to take into account the extra day every 4 years), every month has 30.4 days in it (to take into account that for 365.25 days divided by 12 months = 30.4), each week has seven days ( all weeks have seven days I know but...) and so on..

the above code entered with you posted number of 424 returns

[code] You have to wait 1 Years, 1 Months, 4 Weeks, 0 Days until this Day[/code]

##### Share on other sites
only 1 minor problem with that.. it doesn't work if you input a date less than a year (365.25) Any mods that can be done? im stumped on this one..

Thanks for the help :)

##### Share on other sites
JACKPOT :D

[code]<?PHP
function NoOfDays(\$Num){

\$years = 0;
\$months = 0;
\$weeks = 0;
\$days = 0;
\$difference=\$Num;

\$test = floor(\$Num/365.25);
if(\$test > 0){
\$years = \$test;
\$difference = \$Num - (\$years*365.25);
}

\$test = floor(\$difference/30.4);
if(\$test > 0){
\$months = \$test;
\$difference = \$difference - (\$months*30.4);
}

\$test = floor(\$difference/7);
if(\$test > 0){
\$weeks = \$test;
\$difference = \$difference - (\$weeks*7);

}
if (\$difference >= 1){
\$days = \$difference;
}

\$output = "You have to wait \$years Years, \$months Months, \$weeks Weeks, \$days Days until this Day";

return \$output;
}

echo NoOfDays(424);

?>[/code]

I added \$difference=\$Num; as if no years it wasn't created so of course there is no difference

Thanks Paul :)

##### Share on other sites
[code]
\$days = floor(\$difference);
[/code]

this part needs adjusting to or you get responses like 3.8 days in the printout

and you are welcome