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 Link to comment https://forums.phpfreaks.com/topic/19563-days-on-countdown/ 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. Link to comment https://forums.phpfreaks.com/topic/19563-days-on-countdown/#findComment-85087 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 Link to comment https://forums.phpfreaks.com/topic/19563-days-on-countdown/#findComment-85111 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] Link to comment https://forums.phpfreaks.com/topic/19563-days-on-countdown/#findComment-85117 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 :) Link to comment https://forums.phpfreaks.com/topic/19563-days-on-countdown/#findComment-85126 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 :) Link to comment https://forums.phpfreaks.com/topic/19563-days-on-countdown/#findComment-85128 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 Link to comment https://forums.phpfreaks.com/topic/19563-days-on-countdown/#findComment-85129 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.