function fixScaleForMonths(oJSDate, oToday, sScale, iDiffSeconds) {
		var iMonthDiff = Math.abs(oJSDate.getUTCMonth() - oToday.getUTCMonth());
		if (sScale === "week" && iMonthDiff === 2) {
			// 2 months diff
			// e.g. March 1st - Jan 31st
			return "month";
		} else if (sScale === "week" && iMonthDiff === 1) {
			// same day but different month
			// e.g. March 1st - Feb 1st
			if (oJSDate.getUTCDate() === oToday.getUTCDate()
				// future date
				// e.g. Feb 14th - 15. Mar 15th (29/30 days diff) => 1 month
				|| (iDiffSeconds < 0 && oJSDate.getUTCDate() < oToday.getUTCDate())
				// past date
				// e.g. Mar 15th - Feb 14th (29/30 days diff) => 1 month
				|| (iDiffSeconds > 0 && oJSDate.getUTCDate() > oToday.getUTCDate())
			) {
				return "month";
			}
		} else if (sScale === "month" && iMonthDiff === 1) {
			// future date
			// e.g. Mar 14th - Apr 13th (30 days diff)
			if ((iDiffSeconds > 0 && oJSDate.getUTCDate() < oToday.getUTCDate())
				// past date
				// Feb 14th - Jan 15th (30 days diff)
				|| (iDiffSeconds < 0 && oJSDate.getUTCDate() > oToday.getUTCDate())
			) {
				return "week";
			}
		}
		return sScale;
	}
Format a date relative to the current date.

@param {Date} oJSDate the value to format
@param {boolean} bUTC whether to use UTC
@param {number[]} aRange scale ranges
@param {string} sTimezone the IANA timezone ID
@returns {string|null} the formatted output value or <code>null</code> if relative formatting is not possible
@private