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 < $tota开发者_如何学PythonlRounds; $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?
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'));
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
精彩评论