dateTime 在前端应用程序 (angularjs 1.x.x) 上正在更改



我的前端应用程序运行了几个月,一切都很好,直到本周问题开始。而这个问题只在谷歌浏览器上,在火狐中,一切都还可以。

我的前端Web应用程序使用angularjs 1.x,angularjs$resource请求和时刻来操作日期。

问题出在日期时间上,显然谷歌浏览器正在以随机方式更改它。这是来自后端API的响应(正确,UTC(

"Horarios": [
{
"CodigoTurma": 2,
"HorarioInicial": "0001-01-01T10:00:00Z",
"HorarioFinal": "0001-01-01T10:50:00Z",
"Inativo": false,
"CodigoFilial": 14,
"Filial": null,
"Id": 2,
},
{
"CodigoTurma": 2,
"HorarioInicial": "0001-01-01T11:00:00Z",
"HorarioFinal": "0001-01-01T11:50:00Z",
"Inativo": false,
"CodigoFilial": 14,
"Filial": null,
"Id": 3,
}
],

如果我在浏览器上使用调试器,要查看响应/回调,我可以注意到日期时间已经更改。这是问题所在!

从角度$resource打印物体响应

正确的日期时间应该是

"HorarioInicial": "0001-01-01T07:00:00Z" 
"HorarioFinal": "0001-01-01T07:50:00Z"

我的意思是,GMT -3 因为它是我的本地日期时间,但应用程序 ou 浏览器,我不知道是谁,正在更改为类似的东西

"HorarioInicial": "0001-01-01T06:43:00Z" 
"HorarioFinal": "0001-01-01T07:53:00Z"

我认为Chrome javascript引擎可能与日期或其他内容有关。

我的前端堆栈是:

"angular-input-masks": "^2.3.0",
"angular-sortable-view": "0.0.15",
"autoprefixer": "^6.3.6",
"babelify": "^6.1.2",
"browserify": "^13.0.0",
"css-mqpacker": "^5.0.1",
"cssnano": "^3.7.1",
"express": "^4.13.4",
"graceful-fs": "^4.1.3",
"gulp": "^3.9.1",
"gulp-clean-css": "^2.0.6",
"gulp-fn": "0.0.0",
"gulp-if": "^2.0.0",
"gulp-livereload": "^3.8.1",
"gulp-notify": "^2.2.0",
"gulp-postcss": "^6.1.1",
"gulp-rename": "^1.2.2",
"gulp-replace": "^0.5.4",
"gulp-sourcemaps": "^2.0.0-alpha",
"gulp-sync": "^0.1.4",
"gulp-uglify": "^1.5.3",
"gulp-usemin": "^0.3.22",
"model-js": "^0.2.5",
"moment": "^2.14.1",
"open": "0.0.5",
"pluralize-words-ptbr": "https://github.com/keep-faith/pluralize-ptbr.git",
"postcss-import": "^8.1.2",
"postcss-nested": "^1.0.0",
"postcss-simple-vars": "^2.0.0",
"signalr-no-jquery": "^0.1.8",
"through": "^2.3.8",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.1.0",
"watchify": "^3.7.0"

我发现了问题。API 后端将年份发送到 JavaScript 范围(1970 年(之外,因此谷歌浏览器在更改为本地时区时迷失了方向。FireFox足够聪明,可以解决这个开发人员的错误,而Chrome则没有。

相关内容