为什么日期选择器中的日期显示最后一天?

Вит*_*рый 6 javascript datepicker angular

我使用datepicker c角材料。这是代码:

<td [formGroup]="item">
 <div class="input-group">
  <div class="input-group-addon">
   <mat-datepicker-toggle mdSuffix [for]="picker"></mat-datepicker-toggle>
   <mat-datepicker #picker></mat-datepicker>
  </div>
  <input class="form-control" [matDatepicker]="picker" placeholder="Date" formControlName="date">
 </div>
</td>
Run Code Online (Sandbox Code Playgroud)

数据选择器采用发送时将其发送到服务器的形式。

但是问题在于这些值是在最后一天传输的。

例如,我选择了1/18/2018,但是将其发送到服务器2018-01-17T22: 00: 00.000Z

奇怪的是,用于日期的角形管道正确地转换了日期,但是在显示日期之前,我在服务器上有一个请求,要求按月份进行分组,而新月份的第一天是上一个日期的最后一天。

我以日期类型存储在猫鼬模式中的日期。

也许有人对此有疑问。

谢谢。

Вит*_*рый 6

我通过将datepicker日期值转换为UTC来解决此问题。这是示例:

const d = new Date(<DATE FROM FORM FIELD>);
const date = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate());
Run Code Online (Sandbox Code Playgroud)

也许这不是修复它的优雅方法,但可以帮助我