angular - 从日期选择器将角度字符串转换为日期
问题描述
我一直在学习一些教程,现在停留在我想在材料日期选择器中显示我的数据值的地方。
问题是我的日期保存在一个纪元中:字符串值不兼容,不能显示为日历值。
现在我正在寻找每个人都在说的日期适配器,但我如何才能真正让它发挥作用?适配器只是将时间戳格式更改为 datepicker 可以获取的日期对象。有没有办法我可以在这个适配器上进行更改,以便它可以采取类似的方式firestore.String
@Injectable()
export class NgbDateFirestoreAdapter extends NgbDateAdapter<firestore.Timestamp> {
/**
* Converts Firestore TimeStamp to a NgbDateStruct
*/
fromModel(ts: firestore.Timestamp): NgbDateStruct {
if (ts instanceof firestore.Timestamp) {
return {
year: ts.toDate().getFullYear(),
month: ts.toDate().getMonth() + 1,
day: ts.toDate().getDate()
};
} else return null;
}
/**
* Converts a NgbDateStruct to a Firestore TimeStamp
*/
toModel(ngbDate: NgbDateStruct): firestore.Timestamp {
const jsDate = new Date(
ngbDate.year ? ngbDate.year : new Date().getFullYear(),
ngbDate.month ? ngbDate.month - 1 : new Date().getMonth() - 1,
ngbDate.day ? ngbDate.day : new Date().getDate(),
12
);
return firestore.Timestamp.fromDate(jsDate);
}
所以我知道这样的事情firebase。火库。时间戳存在,但我真正需要的是将字符串转换为日期对象,在日期选择器输入中,它类似于
<input matInput [matDatepicker]="picker1" [max]="tomorrow" placeholder="Date of Birth" #dob [value]="user.date">
我的 user.date 将是从字符串到日期的转换值。
现在的问题是 user.date 来自我的user$ | asyn
,我不能做一个函数来转换 ts 因为它只会返回一个空值
@Injectable()
export class NgbDateFirestoreAdapter extends NgbDateAdapter<string> {
/**
* Converts String to a NgbDateStruct
*/
fromModel(ts: string): NgbDateStruct {
var tsInt = parseInt(ts);
var tsDate= new Date(tsInt * 1 );
return {
year: tsDate.getFullYear(),
month: tsDate.getMonth() + 1,
day: tsDate.getDate()
};
}
/**
* Converts a NgbDateStruct to a String
*/
toModel(ngbDate: NgbDateStruct): string {
const jsDate = new Date(
ngbDate.year ? ngbDate.year : new Date().getFullYear(),
ngbDate.month ? ngbDate.month - 1 : new Date().getMonth() - 1,
ngbDate.day ? ngbDate.day : new Date().getDate(),
12
);
return ngbDate.toString();
}
}
这就是我尝试过的
但是当我尝试切换日历以更改日期时,我收到一条错误消息
错误类型错误:无法在 NgbDateFirestoreAdapter.toModel (date-adapter.service.ts:29) 读取 null 的属性“年份”
解决方案
推荐阅读
- reactjs - React Transition Group:TransitionGroup 的目的是什么?
- reactjs - 如何使用 React-ScrollMagic 将图像固定在分屏上?
- ruby-on-rails - Rails - 获取结果为 0 以获得 DB 中不存在的值
- python-3.x - 如何在使用 selenium(python3)打开的网站中修改 html 代码?
- python - NOReverseMatch 在 /bid/2
- r - 如何将具有3列的数据框转换为R中的矩阵
- javascript - 使用 InnerHTML 中的 HTML 链接在 Angular 中显示该文件
- python - Mac OS X 上的上下文菜单触发间歇性
- javascript - 输入微调器使用 javascript 添加到输入数字
- flutter - 管理 SingleChildScrollView 内 SingleChildScrollView 的滚动 - 颤动?