从输入类型为“ date”的日期选择器中选择日期后,将其错误地存储到数据库中。
我要从datepicker中选择日期,然后使用AngularJS将其发送到Spring MVC
angularJS:
$scope.updateProjectDetails = function(detail) {
$http.post('${pageContext.request.contextPath}/api/details', detail)
.then(function(response) {
console.log(response)
});
}
Chrome控制台:
config: {method: "POST", transformRequest: Array(1), transformResponse: Array(1), paramSerializer: ƒ, url: "/editor-application/api/details", …}
data:
date: 1557439200000
hours: 2
id: 76
projectId: 53
1557439200000-> 5/10/2019,12:00:00 AM
然后将JSON发布到MVC机制:
控制器:
@PostMapping(path = "/details")
public ProjectDetails updateProjectDetails(@RequestBody ProjectDetails details) {
details.setId(0);
editorService.updateProjectDetails(details);
return details;
}
dao:
@Override
@Transactional
public void updateProjectDetails(ProjectDetails details) {
Session currentSession = sessionFactory.getCurrentSession();
currentSession.saveOrUpdate(details);
}
和数据库:
76 2019-05-09 2 53
日期始终为-1天,我知道时区存在问题,但是我该如何解决?
答案 0 :(得分:1)
我一直发现以下作品:
// from the server
$http.get('myDate').then(date => // date === 1557439200000
new Date(date-(new Date(date).getTimezoneOffset()*60*1000)).toISOString().slice(0,10)
)
有点样板,但是可以完成工作。