How many weeks and days left?

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
User avatar
Mr Tech
Forum Contributor
Posts: 424
Joined: Tue Aug 10, 2004 3:08 am

How many weeks and days left?

Post by Mr Tech »

I can't get my head around this... How do I display how many weeks and days left when I have a begin date and an end date?

Here is my really messy code:

Code: Select all

if ($target_date != '0000-00-00' && $target_date != '') {
 
    $today_time = time();
    $end_time = strtotime($target_date);
 
    $days_left = ($end_time - $today_time) / 86400;
    $days_left = round($days_left);
 
    if ($days_left < 0) {
        $remaining =  '<span class="days_overdue">' . $days_left . ' days overdue!</span>';
    } else if ($days_left == 0) {
        $remaining =  '<span class="days_3">Due today!</span>';
    } else if ($days_left < 3) {
        $remaining =  '<span class="days_3">' . $days_left . ' days remaining</span>';
    } else if ($days_left < 7) {
        $remaining =  '<span class="days_6">' . $days_left . ' days remaining</span>';
    } else if ($days_left == 7) {
        $remaining =  '1 week remaining';
    } else if ($days_left > 7 && $days_left < 14) {
        $days_left_week = $days_left - 7;
        $remaining =  '1 week, ' . $days_left_week . ' days remaining';
    } else if ($days_left > 14) {
        $days_left_weeks = $days_left / 7;
        $remaining =  round($days_left_weeks) . ' weeks remaining';
    } else {
        $remaining =  'Days remaining unknown';
    }
}
As you can see it is really messy. Everything works fine however I want the last part to display how many weeks and days are left.

Code: Select all

    } else if ($days_left > 14) {
        $days_left_weeks = $days_left / 7;
        $remaining =  round($days_left_weeks) . ' weeks, ???? days remaining';
 
It's probably simple maths but I can't work it out.

Also, is there one line of code I can use instead of all this code I have above that does pretty much the same thing?
User avatar
jayshields
DevNet Resident
Posts: 1912
Joined: Mon Aug 22, 2005 12:11 pm
Location: Leeds/Manchester, England

Re: How many weeks and days left?

Post by jayshields »

Did you conduct a search before you made your post?
dajawu
Forum Commoner
Posts: 59
Joined: Fri May 23, 2008 10:16 am

Re: How many weeks and days left?

Post by dajawu »

Here is an easy way to get it done.

Code: Select all

 
$weeks = (int) ($days_left / 7) ;
$days = $days_left % 7;
echo "$weeks weeks and $days days left!";
 
This will work for any number too. $days_left can be 0 to anything.
User avatar
Mr Tech
Forum Contributor
Posts: 424
Joined: Tue Aug 10, 2004 3:08 am

Re: How many weeks and days left?

Post by Mr Tech »

Thanks so much. That code is perfect :)
Post Reply