function incDate(&$dateArr, $amount, $unit) { global $debug; if ($debug) { echo sprintf("Increasing from %02d.%02d. %02d:%02d by %d %6s ", $dateArr['mday'], $dateArr['mon'], $dateArr['hours'], $dateArr['minutes'], $amount, $unit); } if ($unit == "mday") { $dateArr["hours"] = 0; $dateArr["minutes"] = 0; $dateArr["seconds"] = 0; $dateArr["mday"] += $amount; $dateArr["wday"] += $amount % 7; if ($dateArr["wday"] > 6) { $dateArr["wday"] -= 7; } // Start: Bug (13. month) fixed by MaMo-Net if ($dateArr["mday"] == date("t")) { $dateArr["mon"]++; if ($dateArr["mon"] > 12) { $dateArr["mon"] = 1; } $dateArr["mday"] = 1; } // End: Bug (13. month) fixed by MaMo-Net } elseif ($unit == "hour") { if ($dateArr["hours"] == 23) { incDate($dateArr, 1, "mday"); } else { $dateArr["minutes"] = 0; $dateArr["seconds"] = 0; $dateArr["hours"]++; } } elseif ($unit == "minute") { if ($dateArr["minutes"] == 59) { incDate($dateArr, 1, "hour"); } else { $dateArr["seconds"] = 0; $dateArr["minutes"]++; } } if ($debug) { echo sprintf("to %02d.%02d. %02d:%02d\n", $dateArr['mday'], $dateArr['mon'], $dateArr['hours'], $dateArr['minutes']); } }
function incDate(&$dateArr, $amount, $unit) { if ($unit == "mday") { $dateArr["hours"] = 0; $dateArr["minutes"] = 0; $dateArr["seconds"] = 0; $dateArr["mday"] += $amount; $dateArr["wday"] += $amount % 7; if ($dateArr["wday"] > 6) { $dateArr["wday"] -= 7; } // Start: Bug (13. month) fixed by MaMo-Net if ($dateArr["mday"] == date("t")) { $dateArr["mon"]++; if ($dateArr["mon"] > 12) { $dateArr["mon"] = 1; } $dateArr["mday"] = 1; } // End: Bug (13. month) fixed by MaMo-Net } elseif ($unit == "hour") { if ($dateArr["hours"] == 23) { incDate($dateArr, 1, "mday"); } else { $dateArr["minutes"] = 0; $dateArr["seconds"] = 0; $dateArr["hours"]++; } } elseif ($unit == "minute") { if ($dateArr["minutes"] == 59) { incDate($dateArr, 1, "hour"); } else { $dateArr["seconds"] = 0; $dateArr["minutes"]++; } } }