input = "date" неверное значение в базе данных после сохранения - PullRequest
0 голосов
/ 10 мая 2019

После выбора даты из ввода типа = "date", указатель даты, он ошибочно сохраняется в базе данных.

Я выбираю дату из 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 -> 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 день, я знаю, что есть проблема с часовым поясом, но как мне ее решить?

1 Ответ

1 голос
/ 12 мая 2019

Я всегда находил следующие работы:

// from the server
$http.get('myDate').then(date => // date === 1557439200000
    new Date(date-(new Date(date).getTimezoneOffset()*60*1000)).toISOString().slice(0,10)
)

Это немного шаблонно, но выполняет свою работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...