4
votes

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

2
Then ? what is the issue?Sajeetharan
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.Tharindu Senanayake
did you check through fiddler or some tool ? what is the value passed to the service?Sajeetharan
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 apiTharindu Senanayake

2 Answers

7
votes

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);
}
2
votes

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