Jamie888 Ответов: 1

Удалить символ T в значении datetime


Привет, у меня есть столбец в gridview, в котором я буду отображать значение DateTime, получаемое из базы данных. Я использую MVC, и когда значение datetime передается через javascript, пространство между датой и временем заменяется дополнительным символом "T". Я хочу удалить эту букву " Т " и вернуть пространство между ними. Ниже приведены мои коды на javascript:

$.ajax({
    async: false,
    type: "POST",
    url: "/Calendar/GetDateStart",
            }).success(function (data) {
                grid = $('#gdNotificationInformation').kendoUIGrid($.extend({
                    },
                    dataSource: {
                        data: data.data,
                    },
                    columns: [
                        { field: "a1", title: "Date Start", headerAttributes: { style: "overflow: visible; white-space: normal" } },
}],
}));
});



Я просто показываю частичные коды, так как это единственный сегмент кодов, который имеет проблемы. Любая помощь будет оценена по достоинству. Спасибо.

Что я уже пробовал:

1. преобразуйте значение datetime в строку в контроллере, прежде чем передавать его в javascript, но безрезультатно.

Karthik_Mahalingam

проверить это
https://stackoverflow.com/a/27961034/1147428

Jamie888

Сэр, я проверил свой контроллер. Значение действительно находится в формате datetime без "T"

Karthik_Mahalingam

можете ли вы опубликовать значение datetime, которое вы получаете в контроллере

Jamie888

Именно в таком формате сэр:
10/11/2017 7:42: 16 AM тип данных-DateTime

Karthik_Mahalingam

тогда проблема в пользовательском интерфейсе

1 Ответов

Рейтинг:
2

OriginalGriff

Скорее всего, это не так: вам нужно проверить две вещи.
1) Посмотрите на необработанные данные в вашей БД: они находятся в столбце DATETIME или DATETIME2? Если это не так, то это ваша проблема: она основана на строках, и это очень плохая идея. Измените дизайн базы данных, чтобы хранить все данные в соответствующих типах данных. Все остальное доставит вам больше неприятностей, чем вы можете себе представить в долгосрочной перспективе.
2) Если это столбец формата даты, то проблема заключается в форматировании, применяемом к gridview браузером или к данным вашим кодом после того, как они были извлечены из базы данных. Начните с отслеживания данных через вашу систему с точки извлечения и посмотрите, что с ними происходит: в какой-то момент они будут сформированы для отображения, и именно здесь возникает проблема.


Jamie888

Сэр, тип данных, который я использую в базе данных, - DATETIME2. Я поставил точку останова в последней строке перед тем, как она войдет в javascript, и значение datetime по-прежнему без "T". Только когда он получает дисплей, он показывает букву "Т".

OriginalGriff

Правильно: таким образом, форматирование применяется браузером, и вы не можете "просто удалить его", вам нужно посмотреть на форматирование ячейки / столбца, чтобы узнать, что применяется. Если такого форматирования нет, то оно отображается в формате datetime по умолчанию для клиентского ПК - что означает, что это либо именно то, что запросил пользователь, либо вам нужно переопределить форматирование по умолчанию. Делайте последнее с осторожностью: помните, что интернет по своей природе интернациональен, и "фиксация" формата даты может иметь неприятные последствия для некоторых пользователей!

Jamie888

Я обновил этот вопрос, чтобы лучше отразить сценарий здесь.