- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_reminder.php
- Класс: CCalendarReminder
- Вызов: CCalendarReminder::getReminderTimestamp
static function getReminderTimestamp($eventTimestamp, $reminder, $timezoneName = null)
{
$reminderTimestamp = null;
if (is_array($reminder) && isset($reminder['type']))
{
$type = $reminder['type'];
if (in_array($type, self::SIMPLE_TYPE_LIST))
{
$delta = intval($reminder['count']) * 60;
if ($reminder['type'] == 'hour')
{
$delta = $delta * 60; //Hour
}
elseif ($reminder['type'] == 'day')
{
$delta = $delta * 60 * 24; //Day
}
$reminderTimestamp = $eventTimestamp - $delta;
}
elseif($type === self::TYPE_DAY_BEFORE)
{
$daysBefore = intval($reminder['before']);
$hour = floor(intval($reminder['time']) / 60);
$min = intval($reminder['time'] - $hour * 60);
$reminderTimestamp = mktime($hour, $min, 0, date("m", $eventTimestamp), date("d", $eventTimestamp) - $daysBefore, date("Y", $eventTimestamp));
if ($timezoneName)
{
$timezoneServerOffset = CCalendar::GetTimezoneOffset($timezoneName, $eventTimestamp) - date("Z", $eventTimestamp);
$reminderTimestamp -= $timezoneServerOffset;
}
}
elseif($type === self::TYPE_SPECIFIC_DATETIME)
{
$reminderTimestamp = CCalendar::Timestamp($reminder['value'], false, true);
$reminderTimestamp = $reminderTimestamp - CCalendar::GetTimezoneOffset($timezoneName, $reminderTimestamp) + date("Z", $reminderTimestamp);
}
}
return $reminderTimestamp;
}