猿问

保存后,输入=“日期”在数据库中的无效值

从输入类型为“ 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;

}  

道:


@Override

@Transactional

public void updateProjectDetails(ProjectDetails details) {


    Session currentSession = sessionFactory.getCurrentSession();

    currentSession.saveOrUpdate(details);

}

和数据库:


76 2019-05-09 2 53


日期始终为-1天,我知道存在时区问题,但是我该如何解决呢?


绝地无双
浏览 182回答 1
1回答

莫回无

我一直发现以下作品:// from the server$http.get('myDate').then(date => // date === 1557439200000    new Date(date-(new Date(date).getTimezoneOffset()*60*1000)).toISOString().slice(0,10))这有点样板,但可以完成工作。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答