Fixing January bug

`smartModifz(-1)` in January would go back 2 years since `1-1+0 <= 0` resulting in `0 - 1` as `$y_change`
This commit is contained in:
Dennis Eichhorn 2017-01-04 15:10:21 +01:00 committed by GitHub
parent c15928bcc9
commit ddc71f86f6

View File

@ -90,8 +90,8 @@ class SmartDateTime extends \DateTime
*/
public function smartModify(int $y, int $m = 0, int $d = 0, int $calendar = CAL_GREGORIAN) : SmartDateTime
{
$y_change = (int) floor(((int) $this->format('m') - 1 + $m) / 12);
$y_change = ((int) $this->format('m') - 1 + $m) <= 0 && ((int) $this->format('m') - 1 + $m) % 12 === 0 ? $y_change - 1 : $y_change;
$y_change = floor(((int) $this->format('m') - 1 + $m) / 12);
$y_change = ((int) $this->format('m') - 1 + $m) < 0 && ((int) $this->format('m') - 1 + $m) % 12 === 0 ? $y_change - 1 : $y_change;
$y_new = (int) $this->format('Y') + $y + $y_change;
$m_new = ((int) $this->format('m') + $m) % 12;
$m_new = $m_new === 0 ? 12 : $m_new < 0 ? 12 + $m_new : $m_new;