Дата выпуска в сетке Кендо

Мое приложение работает на сервере с часовым поясом UTC + 05: 30 . Моя клиентская машина имеет часовой пояс UTC-05: 00 .

Теперь предположим, что он вводит 12/31/1989 в текстовое поле и сохраняет форму, когда он просматривает детали в сетке кендо, дата отображается как 12/30/1989 вместо 12/31/1989 .

Я отладил приложение, изменив часовой пояс моего компьютера и в отладке обнаружил, что

  1. Дата не изменяется до тех пор, пока не будет запущена вставка / обновление. Он остается как 31.12.1989 .
  2. Дата базы данных также хранится как 12/31/1989 .
  3. Когда я получаю данные из базы данных, в модели и дата контроллера все еще 12/31/1989 .
  4. Но когда я возвращаю данные в сетку кендо в формате JSON, используя следующий запрос, он показывает дату на странице как 12/30/1989 .

C #

public ActionResult GetPatients([DataSourceRequest] DataSourceRequest request, int includePatientId = 0) { return Json(this.patienModel.RetrieveActivePatients().ToDataSourceResult(request)); } 

Kendo Grid

 @(Html.Kendo().Grid<RxConnectEntities.Patient> ().Name("PatientList") .Columns(columns => { columns.Bound(p => p.PatientID).Visible(false); columns.Bound(p => p.Name).Width(100); columns.Bound(p => p.Gender).Width(80); columns.Bound(p => p.DateOfBirth).Width(90) .Format("{0:MM/dd/yyyy}") .EditorTemplateName("DateOfBirth") .Filterable(false).HtmlAttributes(new { id = "gridDateOfBirth" }) .ClientTemplate("#: kendo.toString(kendo.parseDate(data.DateOfBirth),'MM/dd/yyyy') #"); columns.Bound(p => p.PhoneNumber).Title("Phone Number").Width(110); columns.Command(command => { command.Custom("Select").Click("OnSelectRow"); command.Custom("Edit").Text("Edit").Click("EditGrid"); }).Width(120); }) .Pageable(p => p.PageSizes(true)) .DataSource(dataSource => dataSource .Ajax().ServerOperation(true) .PageSize(5) .Model(m => m.Id(p => p.PatientID)) .Read(read => read.Action("GetActivePatientList", "Order") .Data(@"function(){ return{ includePatientId:" + (TempData["includePatientId"] ?? 0) + @" } }")) .Destroy(delete => delete.Action("Deletepatient", "Order")) ) ) 

    У меня была аналогичная проблема с сильно типизированной сеткой Кендо. Это звучит странно, изменение сильно типизированного на его JS-коллегу решило мою проблему. Я не мог найти никакого объяснения, но, по-моему, я могу явно указать тип столбца = «дата». Я знаю, что это не логично, но, по крайней мере, вы можете попробовать.

     schema: { model: { id: "PatientID", fields: { PatientID: {}, Name: {}, Gender: {} DateOfBirth: { type: "date" } } } } 

    Вы можете удалить временную часть даты с помощью DateTime.Date .

     var testDateTime = DateTime.Now; var testDate = dateAndTime.Date; // Save testDate to SQL Server 

    Это должно установить временную часть до 00:00:00 когда она будет сохранена.

    Interesting Posts

    Переносимость базы данных (sql-сервер для mysql, postgresql)

    Каков наилучший способ выбрать минимальное значение из нескольких столбцов?

    C # управление транзакцией через несколько баз данных

    SQL Server T-SQL Получить данные в XML, используя FOR XML PATH

    Поиск имени конкретного шаблона SQL Server

    подсчитывать последовательные статусы из каждого идентификатора

    Ошибка версии сервера SQL (datetime2)

    Что означает значение -9 для fetch_status в SQL Server?

    SQL Server: преобразование исторических данных в временные таблицы

    SQL: упорядочить по столбцу, затем подстрокой mix asc и desc

    Запрос SQL для поля имени без алфавита

    Есть ли метаданные, которые я могу прочитать из SQL Server, чтобы узнать последнюю измененную строку / таблицу?

    Transact SQL заменяет часть строки

    Вставка нескольких записей в таблицу с циклом while

    полная синхронизация между базой данных iphone sqlite3 и базами данных sql server 2005 на сервере

    Давайте будем гением компьютера.