Jump to content

Archived

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

shocker-z

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?

Thanks in advance

regards
Liam

Share this post


Link to post
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 this post


Link to post
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 this post


Link to post
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 this post


Link to post
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 this post


Link to post
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 this post


Link to post
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

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.