Skip to content

Instantly share code, notes, and snippets.

@diegomengarda
Last active September 4, 2017 11:50
Show Gist options
  • Save diegomengarda/0e4ad8fc141d4b1af35e0775bcf692da to your computer and use it in GitHub Desktop.
Save diegomengarda/0e4ad8fc141d4b1af35e0775bcf692da to your computer and use it in GitHub Desktop.
Recorrência
//$entry['interval'] - Intervalo da recorrência (dias, meses ou anos)
//$entry['interval_type'] - Tipo de intervaldo (diário, mensal ou anual)
$end_date = \Carbon\Carbon::createFromFormat('Y-m-d', $end_date);
$due_date = \Carbon\Carbon::createFromFormat('Y-m-d', $entry['due_date']);
if ($entry['interval_type'] === 'days') {
$entries_number = intval($end_date->diffInDays($due_date) / $entry['interval']);
}
if ($entry['interval_type'] === 'months') {
$entries_number = intval($end_date->diffInMonths($due_date) / $entry['interval']);
}
if ($entry['interval_type'] === 'years') {
$entries_number = intval($end_date->diffInYears($due_date) / $entry['interval']);
}
$entries_temp = [];
for ($i = 1; $i <= $entries_number; $i++) {
$entry_due_date = clone $due_date;
if ($entry['interval_type'] === 'days') {
$entry_due_date = $entry_due_date->addDays($entry['interval'] * $i)->format('Y-m-d');
}
if ($entry['interval_type'] === 'months') {
$entry_due_date = $entry_due_date->addMonths($entry['interval'] * $i)->format('Y-m-d');
}
if ($entry['interval_type'] === 'years') {
$entry_due_date = $entry_due_date->addYears($entry['interval'] * $i)->format('Y-m-d');
}
$entries_temp[] = [
'id' => null,
'due_date' => $entry_due_date
];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment