Angular Material Datepicker returns one day before the exact date
Asked Answered
D

2

5

Im using angular material in my web site and when I send the date to my web api, it shows on day before the selected date. For an example if I put in 2016-01-03 then it will send 2016-01-02. How can I fix this issue. I haven't change any code form the original code provided in angular material web site the link to the code is below

https://material.angularjs.org/latest/demo/datepicker

Disbar answered 28/5, 2016 at 4:8 Comment(6)
plnkr.co/edit/Cz6yY56zVEFj621cndBz?p=info This worksDisbar
Then ? what is the issue?Wardship
When I pass the value to the web api even though the date is inserted correctly in the form when the date value is being received by the web api controller that date value is the day before the date entered by the user. That is my problem. For an example if you enter 2012-05-02 then web api will receive 2012-05-01.Disbar
did you check through fiddler or some tool ? what is the value passed to the service?Wardship
Yes, I used Postman. Then the value comes ok. The issue is when the date value is being passed form angular form to the web api controller. Even when I use console.log the printed date value is correct but it reduces by 1 when passed to web apiDisbar
Give me team viewer i can checkWardship
S
8

we recently faced the same , adjusting the value before posting like said in https://github.com/angular-ui/ui-date/issues/88

works fine. Hope its helpfull for some one.

 function adjustDateForTimeOffset(dateToAdjust) {
var offsetMs = dateToAdjust.getTimezoneOffset() * 60000;
return new Date(dateToAdjust.getTime() - offsetMs);
}
Severus answered 2/7, 2018 at 11:30 Comment(0)
A
3

Just try to use angular-moment as following.

var temp =(moment.utc(local.date));

I wrote a full article about this. FIX IN MD-DATEPICKER TO GET THESELECTED DATE

Amylene answered 28/5, 2016 at 7:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.