sark9012
sark9012

Reputation: 5717

Adding a date every few days

I have some code that generates fixtures, I am looking to add a fixture date to the code.

$totalRounds = $teams - 1;
    $matchesPerRound = $teams / 2;
    $rounds = array();
    for ($i = 0; $i < $totalRounds; $i++) {
        $rounds[$i] = array();
    }

    for ($round = 0; $round < $totalRounds; $round++) {
        for ($match = 0; $match < $matchesPerRound; $match++) {
            $home = ($round + $match) % ($teams - 1);
            $away = ($teams - 1 - $match + $round) % ($teams - 1);
            // Last team stays in the same place while the others
            // rotate around it.
            if ($match == 0) {
                $away = $teams - 1;
            }

            $rounds[$round][$match] = "$user[$home]~$team[$home]@$user[$away]~$team[$away]";
        }
    }

$team is the amount of teams in the league. I want to add a variable for every 4 days, and for every round of fixtures generated, I want to add 4 days onto the previous round.

For example, if today is 3rd may, i want 3rd may for first fixture, 7th may for second fixture, 11th may for third fixture.

By fixture i mean round which includes a set of fixtures!

How do I add 4 days to a strotime variable everytime the rounds increase?

Upvotes: 0

Views: 149

Answers (2)

zombat
zombat

Reputation: 94147

If I understand your question correctly, you just want each round to have an associated date. You've got an array of $rounds, so could you not just create a correspondingly-keyed array to hold the round dates?

...
$rounds = array();
$roundDates = array();
$curTime = time();
for ($i = 0; $i < $totalRounds; $i++) {
    $rounds[$i] = array();
    $numDays = $i * 4;
    $roundDates[$i] = strtotime("+".$numDays." days",$curTime);
}

foreach($roundDates as $time) echo date("Y-m-d",$time)."\n";
//gives
//2010-05-03
//2010-05-07
//2010-05-11
//etc

Upvotes: 0

ceejayoz
ceejayoz

Reputation: 179994

Have you looked into strtotime? It allows syntax like the following:

$future_date = strtotime('+4 days');
$even_further_in_the_future = strtotime('+4 days', $future_date);
$arbitrary_start_date = strtotime('+4 days', strtotime('May 25th, 2010'));

Upvotes: 1

Related Questions