Публикация

Отобразить время контакта, в зависимости от указанного часового пояса.

Добрый день, уважаемые пользователи интернет сообщества Террасофт.

Как известно, в карточке редактирования контакта можно указать часовой пояс, в котором находится данный контакт. К Вашему вниманию предлагаю реализацию отображения в карточке редактирования контакта текущего времени выбранного часового пояса в реальном времени. Если часовой пояс не задан - будет отображено системное время.

Для реализации необходимо запустить Terrasoft Administrator и открыть сервис wnd_ContactEdit. На закладке "Невизуальные" добавить новый компонент "Timer". В свойстве "Interval" установить значение 1000, что равняется одной секунде.
После этого, на вкладке "Визуальные" добавьте новый компонент Label. В свойстве Name установите значение TimeLabel. Разместите данный компонент в удобном для Вас месте на карточке редактирования.
Далее, для созданного компонента Timer, Вам необходимо определить событие OnTimer, и в функцию-обработчик события добавить следующий код:

try{
    var localTime = new Date();
    var utcTime = localTime.getTime() + (localTime.getTimezoneOffset() * 60000)
    var offset = edtTimeZone.DataField.DisplayValue.split('UTC');
    var utc = offset[1];
    if(utc == undefined)
    {
             var d = new Date();
             var Time = d.getHours().toString() + ':' + d.getMinutes().toString() + ':' + d.getSeconds().toString();
             Label1.Caption = 'Время: ' + Time;
             return;
    }
    if (utc.charAt(1) == '0')
    {
             utc = utc.charAt(0) + utc.charAt(2);
    }
    if(utc.charAt(0) ==  ')' || utc.charAt(0) ==  ' ')
    {
             utc = 0;
    }
    else
    {
             utc = utc.charAt(0) + utc.charAt(1) + utc.charAt(2);
    }
    var ContactTime = new Date(utcTime + (3600000*utc));
    var Time = ContactTime.getHours().toString() + ':' + ContactTime.getMinutes().toString() + ':' + ContactTime.getSeconds().toString();
    TimeLabel.Caption = 'Время: ' + Time;  
    }
    catch(e)
    {
          return;
    }

В итоге, при открытии карточки редактирования, будет отображено время выбранного часового пояса в карточке:

1

Приятной работы с Террасофт!

Нравится

Поделиться

0 комментариев
Показать все комментарии