我有一个通过Ajax调用的MVC控制器。该控制器对返回日期(以00:00:00作为时间值)的数据库进行查询
在一种情况下,存储在SQL Server数据库中的记录的值为“ 2019-05-01 00:00:00.000”。
我正在运行此实体框架说明:
canvas context
GridRowObject就是这样:
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);
制作Ajax时,正如我在Chrome开发工具中看到的那样,“ PeriodoFecha”的值是“ / Date(1556679600000)/”。
我使用此页面https://www.epochconverter.com/来查看真实的日期值,并且看到的是:格林尼治标准时间2019年5月1日和当地时间2019年4月30日23:00:00。 / p>
我开发的页面显示了本地日期,这显然是错误的。
问题是由于我国的时区问题。根据政府的说法,时区在其他年份更改之前已更改。服务器不知道该更改。因此,对于服务器,时区仍为GMT-3,但是实时区为GMT-4。因此,所有访客的PC都将日期显示为4月30日,这显然是错误的。
我如何摆脱时区?我希望,如果服务器使用其Json序列化器序列化日期和时间,则日期和时间应按原样发送,而无需先转换为GMT。
客户端计算机在使用“ moment” jquery插件将json日期转换回日期和时间时,无需考虑时区即可进行转换。
致谢
Jaime