@@ -16,27 +16,27 @@ |
||
| 16 | 16 | */ |
| 17 | 17 | class EventInterval { |
| 18 | 18 | |
| 19 | - /** |
|
| 20 | - * Return the number of times a duration fits into the start and end date taking into account |
|
| 21 | - * BAT's consideration that the end time for a BAT event includes that last minute. |
|
| 22 | - * |
|
| 23 | - * @param \DateTime $start_date |
|
| 24 | - * @param \DateTime $end_date |
|
| 25 | - * @param \DateInterval $duration |
|
| 26 | - * |
|
| 27 | - * @return float |
|
| 28 | - */ |
|
| 29 | - public static function divide(\DateTime $start_date, \DateTime $end_date, \DateInterval $duration) { |
|
| 30 | - // Clone so that we don't change the original object. We are not using ImmutableDateTime to support PHP5.4 |
|
| 31 | - $temp_end_date = clone($end_date); |
|
| 32 | - |
|
| 33 | - // Add a minute to deal with the fact that BAT considers the last minute included |
|
| 34 | - $temp_end_date->add(new \DateInterval('PT1M')); |
|
| 35 | - |
|
| 36 | - // Convert everything to seconds and calculate exactly how many times the duration fits in our event length |
|
| 37 | - $duration_seconds = $duration->d * 86400 + $duration->h * 3600 + $duration->i * 60 + $duration->s; |
|
| 38 | - |
|
| 39 | - return ($temp_end_date->getTimestamp() - $start_date->getTimestamp()) / $duration_seconds; |
|
| 40 | - } |
|
| 19 | + /** |
|
| 20 | + * Return the number of times a duration fits into the start and end date taking into account |
|
| 21 | + * BAT's consideration that the end time for a BAT event includes that last minute. |
|
| 22 | + * |
|
| 23 | + * @param \DateTime $start_date |
|
| 24 | + * @param \DateTime $end_date |
|
| 25 | + * @param \DateInterval $duration |
|
| 26 | + * |
|
| 27 | + * @return float |
|
| 28 | + */ |
|
| 29 | + public static function divide(\DateTime $start_date, \DateTime $end_date, \DateInterval $duration) { |
|
| 30 | + // Clone so that we don't change the original object. We are not using ImmutableDateTime to support PHP5.4 |
|
| 31 | + $temp_end_date = clone($end_date); |
|
| 32 | + |
|
| 33 | + // Add a minute to deal with the fact that BAT considers the last minute included |
|
| 34 | + $temp_end_date->add(new \DateInterval('PT1M')); |
|
| 35 | + |
|
| 36 | + // Convert everything to seconds and calculate exactly how many times the duration fits in our event length |
|
| 37 | + $duration_seconds = $duration->d * 86400 + $duration->h * 3600 + $duration->i * 60 + $duration->s; |
|
| 38 | + |
|
| 39 | + return ($temp_end_date->getTimestamp() - $start_date->getTimestamp()) / $duration_seconds; |
|
| 40 | + } |
|
| 41 | 41 | |
| 42 | 42 | } |