private function diffInUnits(DateInterval $interval, $detailLevel)
	{
		$units = array('y' => 'year', 'm' => 'month', 'd' => 'day',
			'h' => 'hour', 'i' => 'minute', 's' => 'second'
		);

		$diff = array();

		foreach ($units as $format => $unit)
		{
			$amount = $interval->format('%' . $format);

			/** Adding support for weeks */
			if ($unit == 'day' && $amount >= 7)
			{
				$weeks = floor($amount / 7);
				$amount -= $weeks * 7;
				$diff[] = array(
					'amount' => $weeks,
					'unit' => 'week'
				);

				$detailLevel--;
			}

			// Save only non-zero units of time
			if ($amount > 0 && $detailLevel > 0)
			{
				$diff[] = array(
					'amount' => $amount,
					'unit' => $unit
				);

				$detailLevel--;
			}

			if ($detailLevel === 0)
			{
				break;
			}
		}

		return $diff;
	}