angular - 为什么日期在一天前带有价值?
问题描述
帮助解决问题。2天了,我不明白问题是什么。我正在使用 Angular 组件“使用 Moment.js 日期的日期选择器”。但问题是,当我选择例如 03/10/2015 时,组件返回 03/09/2015。我知道这是由于时区,因为我有(UTC + 3),但我不明白如何解决它。
我的代码组件.html:
<mat-form-field appearance="outline" class="datepicker" *ngIf="buttonDisabled" >
<input matInput [matDatepicker]="birthdate" [value]="user.birthdate" formControlName="birthdate" >
<mat-datepicker-toggle matSuffix [for]="birthdate"></mat-datepicker-toggle>
<mat-datepicker #birthdate></mat-datepicker>
</mat-form-field>
组件.ts
import { Component } from '@angular/core';
import { NgForm, FormControl, FormGroup } from '@angular/forms';
import { MAT_MOMENT_DATE_FORMATS, MomentDateAdapter } from '@angular/material-moment-adapter';
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
import * as _moment from 'moment';
import { default as _rollupMoment } from 'moment';
const moment = _rollupMoment || _moment;
@Component({
selector: 'userinfo',
templateUrl: './userinfo.component.html',
styleUrls: ['../../../app.component.css'],
providers: [
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
{ provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS }
]
})
export class UserInfoComponent {
mgForm: FormGroup = new FormGroup({
"birthdate": new FormControl(moment(this.user.birthdate)),
});
解决方案
尝试这个
moment().toISOString();
moment().toISOString(keepOffset);
.toISOString()
以 UTC 格式返回时间戳,即使是本地模式下的时刻。
推荐阅读
- amazon-s3 - www-data 不能使用 aws 命令
- xml - 如何在 Docbook 中进行多通道处理
- javascript - Razor View 中的 Ajax 调用在控制器方法中发送空数据?
- reactjs - firebase命令在vs代码终端800a03ea错误中不起作用
- javascript - Nuxt.js 页面重新加载以提交,即使使用 stop.prevent
- c++ - 无法找出构造函数错误
- visual-studio-code - 如何在我的 vscode 扩展中的自定义 viewsContainers 图标上显示徽章计数?
- asp.net - ASP.NET Cloudinary 得到响应
- vue.js - vue-router 无法解析异步组件默认值:ChunkLoadError: Loading chunk vendor~demo failed
- java - 使用 RowSetProvider 时出现 newFactory() 错误