【问题标题】:Angular Material Datepicker returns one day before the exact dateAngular Material Datepicker 在确切日期前一天返回
【发布时间】:2016-05-28 04:08:58
【问题描述】:

我在我的网站中使用角度材料,当我将日期发送到我的 web api 时,它显示在所选日期的前一天。例如,如果我输入 2016-01-03,那么它将发送 2016-01-02。我该如何解决这个问题。我没有更改角度材料网站中提供的原始代码中的任何代码,代码链接如下

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

【问题讨论】:

  • 然后呢?有什么问题?
  • 当我将值传递给 web api 时,即使当 web api 控制器接收到日期值时,日期已正确插入表单中,该日期值是输入日期的前一天用户。那是我的问题。例如,如果您输入 2012-05-02,那么 web api 将收到 2012-05-01。
  • 您是通过 fiddler 还是其他工具进行检查?传递给服务的值是什么?
  • 是的,我使用了 Postman。然后价值来了。问题是当日期值以角度形式传递给 web api 控制器时。即使我使用 console.log 打印的日期值也是正确的,但在传递给 web api 时它会减少 1

标签: angularjs asp.net-web-api datepicker angularjs-material


【解决方案1】:

我们最近遇到了同样的问题,在发布之前调整了值,就像在 https://github.com/angular-ui/ui-date/issues/88

工作正常。希望它对某些人有所帮助。

 function adjustDateForTimeOffset(dateToAdjust) {
var offsetMs = dateToAdjust.getTimezoneOffset() * 60000;
return new Date(dateToAdjust.getTime() - offsetMs);
}

【讨论】:

    【解决方案2】:

    请尝试使用angular-moment,如下所示。

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

    我为此写了一篇完整的文章。 FIX IN MD-DATEPICKER TO GET THESELECTED DATE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-17
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      相关资源
      最近更新 更多