У меня есть контроллер MVC, который вызывается через Ajax. Этот контроллер делает запрос к базе данных, возвращая дату (с 00:00:00 в качестве значения времени)
В случае запись, хранящаяся в базе данных SQL Server, имеет значение «2019-05-01 00: 00: 00.000».
Я выполняю инструкции этой структуры сущности:
var periodos = db.Periodo.Where(p => p.PeriodoEliminadoEn == null && p.ClienteId == this.ClienteID);
var listado = periodos.Select(p => new
{
PeriodoId = p.PeriodoId,
PeriodoFecha = p.PeriodoFecha,
PeriodoCreadoEn = p.PeriodoCreadoEn,
PeriodoActualizadoEn = p.PeriodoActualizadoEn,
PeriodoActivo = p.PeriodoActivo
});
GridRowObject grid = new GridRowObject(totalPages, currentPage, totalRecords, listado.ToList());
return Json(grid, JsonRequestBehavior.AllowGet);
GridRowObject - это просто:
public class GridRowObject
{
public int total { get; private set; }
public int page { get; private set; }
public int records { get; private set; }
public IEnumerable rows { get; private set; }
public object userdata { get; set; }
public GridRowObject(int total, int page, int records, IEnumerable rows)
{
this.total = total;
this.page = page;
this.records = records;
this.rows = rows;
}
public GridRowObject(int total, int page, int records, IEnumerable rows, object userdata)
: this(total, page, records, rows)
{
this.userdata = userdata;
}
}
Когда Ajax сделан, значение "PeriodoFecha" равно "" / Date (1556679600000) / "", как я видел в инструментах разработки Chrome.
Я использовал эту страницу, https://www.epochconverter.com/,, чтобы увидеть реальное значение даты, и я увидел, что это: 1 мая 2019 года 3:00:00 по Гринвичу и 30 декабря 2019 года 23:00:00 по местному времени.
Тот факт, что на странице, которую я разработал, показывает местную дату, что, очевидно, неверно.
Проблема из-за проблем с часовыми поясами в моей стране. Согласно правительству, часовой пояс был изменен до изменения в другие годы. Сервер не знает об этом изменении. Таким образом, для сервера часовой пояс по-прежнему GMT-3, однако реальный часовой пояс GMT-4. По этой причине на компьютерах всех посетителей указана дата 30 апреля, что явно неверно.
Как мне избавиться от часового пояса? Я ожидаю, что, если сервер сериализует дату и время, используя свой сериализатор Json, дату и время следует отправлять как есть, без предварительного преобразования в GMT.
И клиентский компьютер при использовании плагина jquery «moment» для преобразования этой даты в дату и время конвертируется без учета часового пояса.
Привет
Jaime