【发布时间】:2019-05-10 11:15:13
【问题描述】:
从input type="date", date-picker中选择日期后,错误地存入数据库。
我从 datepicker 中选择日期,然后使用 AngularJS 将其发送到 Spring MVC
angularJS:
$scope.updateProjectDetails = function(detail) {
$http.post('${pageContext.request.contextPath}/api/details', detail)
.then(function(response) {
console.log(response)
});
}
镀铬控制台:
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 -> 2019 年 5 月 10 日凌晨 12:00:00
然后将JSON发布到MVC机制:
控制器:
@PostMapping(path = "/details")
public ProjectDetails updateProjectDetails(@RequestBody ProjectDetails details) {
details.setId(0);
editorService.updateProjectDetails(details);
return details;
}
道:
@Override
@Transactional
public void updateProjectDetails(ProjectDetails details) {
Session currentSession = sessionFactory.getCurrentSession();
currentSession.saveOrUpdate(details);
}
和数据库:
76 2019-05-09 2 53
日期总是-1天,我知道时区有问题,但我应该如何解决呢?
【问题讨论】:
-
1557439200000= (GMT) 2019 年 5 月 9 日星期四晚上 10:00:00。为什么你会期待不同的时间? -
到 UTC 时间和日期:2019 年 5 月 9 日星期四 22:00:00,到本地时间和日期:2019 年 5 月 10 日星期五 00:00:00
-
但是您没有包含任何时区偏移或位置标识。由于缺乏详细信息,因此假定为 GMT(或 UTC)。您需要为您的位置偏移或将日期字符串转换为 UTC 并将您的数据库设置为匹配。
标签: javascript mysql angularjs