shocker-z Posted September 3, 2006 Share Posted September 3, 2006 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 advanceregardsLiam Quote Link to comment Share on other sites More sharing options...
Barand Posted September 3, 2006 Share Posted September 3, 2006 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. Quote Link to comment Share on other sites More sharing options...
shocker-z Posted September 3, 2006 Author Share Posted September 3, 2006 Hahasorry 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 Quote Link to comment Share on other sites More sharing options...
paul2463 Posted September 3, 2006 Share Posted September 3, 2006 Hi shockerTry this[code]<?PHPfunction 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] Quote Link to comment Share on other sites More sharing options...
shocker-z Posted September 3, 2006 Author Share Posted September 3, 2006 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 :) Quote Link to comment Share on other sites More sharing options...
shocker-z Posted September 3, 2006 Author Share Posted September 3, 2006 JACKPOT :D[code]<?PHPfunction 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 differenceThanks Paul :) Quote Link to comment Share on other sites More sharing options...
paul2463 Posted September 3, 2006 Share Posted September 3, 2006 [code] $days = floor($difference); [/code]this part needs adjusting to or you get responses like 3.8 days in the printoutand you are welcome Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.