Визуализация базы данных UT C timestamp как локальная с элементами управления Telerik - PullRequest
0 голосов
/ 27 февраля 2020

Мы используем элементы управления Telerik (PHP UI), но, похоже, что-то, что я не могу взломать.

Мы храним метки времени в базе данных бэкэнда в UT C, и при использовании таблицы для отображения таких элементов я хочу показать, что временная метка UT C преобразована в часовой пояс локальных пользователей (данные TZ хранятся в виде переменной PHP, при входе разных людей могут быть разные TZS). Похоже, я не единственный, кто задает этот вопрос, поскольку на форуме Telerik кто-то другой задает тот же вопрос, но без ответа (прокрутите до конца этого сообщения на форуме ).

С Telerik site I кажется, что все, что мне нужно сделать, это отформатировать дату в формате с добавлением «zzz» к дате, но все, что это делает, это добавляет смещение к отображаемому времени (например, 2020-02-27 10:00:00 -> 2020-02-27 10:00:00-0800) ... но он делает это "автоматически", что, я полагаю, приятно ... (тяжелый сарказм)

Это сообщение на форуме также показывает, что вызов onRequestEnd должен делать то, что мне нужно, но когда я пытаюсь это сделать, ничего не меняется.

Может кто-нибудь предложить какой-нибудь совет?

1 Ответ

0 голосов
/ 28 февраля 2020

Примечание: я создал внешнюю таблицу со следующим:

$grid = new \Kendo\UI\Grid('grid');

Решение: Я добился этого, добавив на страницу следующее:

function dataSource_requestEnd(e){
    var data = e.sender.options.data.data;
    for(var i=0; i<data.length; i++){
        var td = data[i];
        for (var key in td){
            if (key === "NameOfDateField"){
                var offset = new Date().getTimezoneOffset();
                new Date(td[key].setMinutes(td[key].getMinutes() - offset));
            }
        }
    }
 }


$(document).ready(function() {
    var dataSource = $("#grid").data("kendoGrid").dataSource;
    dataSource.bind("requestEnd", dataSource_requestEnd);
    dataSource.fetch();
});

Обратите внимание, что NameOfDateField было именем ключа в массиве, который был возвращен из источника данных.

TBH, я не совсем уверен, как данные были преобразованы, но, безусловно, переменные offset и localTime жизненно важны для этого успеха (хотя, на мой взгляд, они на самом деле ничего не обновляют?!)

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