diff --git a/app/code/Magento/Reports/Model/ResourceModel/Report/Collection.php b/app/code/Magento/Reports/Model/ResourceModel/Report/Collection.php index 7a107b79c0e83..13a764d1df738 100644 --- a/app/code/Magento/Reports/Model/ResourceModel/Report/Collection.php +++ b/app/code/Magento/Reports/Model/ResourceModel/Report/Collection.php @@ -211,8 +211,11 @@ protected function _getMonthInterval(\DateTime $dateStart, \DateTime $dateEnd, $ ) ); } else { + // Transform the start date to UTC whilst preserving the date. This is required as getTimestamp() + // is in UTC which may result in a different month from the original start date due to time zones. + $dateStartUtc = (new \DateTime())->createFromFormat('d-m-Y g:i:s', $dateStart->format('d-m-Y 00:00:00')); $interval['end'] = $this->_localeDate->convertConfigTimeToUtc( - $dateStart->format('Y-m-' . date('t', $dateStart->getTimestamp()) . ' 23:59:59') + $dateStart->format('Y-m-' . date('t', $dateStartUtc->getTimestamp()) . ' 23:59:59') ); }