El lado del servidor está en C# y devuelve la lista de matrices de objetos en formato json. Hay un campo en el modelo de objetos, es de tipo DateTime y su valor es DateTime.MinValue .
Mientras está en el lado de la página, recibe /Date(-62135596800000)/ en cadena. Supongo que esto se debe a que el objeto está serializado. Y en javascirpt, trato de volver a convertirlo al tipo Fecha.
var timeSpan = element.DateModify.replace('Date','').replace('(','').replace(')','').replace(/\//g,''); console.log(timeSpan); var d = new Date(parseInt(timeSpan)); console.log(d); Cuando se convierte a Fecha en javascript, su valor es 0001-01-01 08:05:43 , no 0001-01-01 00:00:00 . ¿Por qué es?
DateTime.MinValue es 0001-01-01 00:00:00 UTC . Y eso es, de hecho, 0001-01-01 08:05:43 en su zona horaria local (sea lo que sea, probablemente Asia/Shanghai o algún lugar cercano). Cuando console.log una Date , muestra la fecha en su zona horaria local. El valor Date es correcto. Simplemente se muestra en un formato diferente.
Los 5 minutos y 43 segundos adicionales se deben a que en el año 1 d. C., las zonas horarias no se han estandarizado y la diferencia horaria media local con respecto a UTC en su ubicación es +08:05:43.
Dos formas simples de hacer que muestre la hora UTC de 00:00:00 es llamar a toISOString o toUTCString :
console.log(new Date(-62135596800000).toISOString()); console.log(new Date(-62135596800000).toUTCString());