我在Angular中遇到日期属性问题。例如,我有下一个Model(typescript)
export class Model{
dateFrom Date;
dateTo Date;
}
在创建视图中,我有:
<input type="date" [(ngModel)] = "model.dateFrom">
<input type="date" [(ngModel)] = "model.dateTo">
<button type="button" (click)="save()"></button>
在我的typescriptFile中我有下一个功能:
public save(){
if(model.dateFrom > model.dateTo){
//Show Error!
}
}
问题在于:model.dateFrom和model.dateTo是字符串!不是日期! 我需要做很多日期比较,然后将数据发送到.net web api。 如何将字符串转换为日期?或者如何做Angular绑定返回日期类型? 我该怎么做日期验证??? 在Jquery项目中我使用了moment.js,但是在Angular项目中,你用什么来进行日期验证?
提前致谢!
答案 0 :(得分:0)
这取决于api期望的日期格式。 Javascript日期对象基于时间值,该值是自1970年1月1日UTC以来毫秒的数量。 [1]
我建议使用momentjs来帮助您进行日期解析,特别是如果您经常这样做的话。处理javascript中的日期,例如穿越迷宫,在你不会想到的地方等待诱杀陷阱
图书馆有一个直接的API
let dateA = moment('01/01/2016', 'MM/DD/YYYY');
let dateB = moment('01/01/2017', 'MM/DD/YYYY');
// You can perform operations between the variables like so
dateB.diff(dateA, 'years') // returns 1
答案 1 :(得分:0)
// transform string to date
new Date('2017-08-24 00:00:00'); // true 2017-08-24 00:00:00
new Date('2017-08-24 00:00'); // true 2017-08-24 00:00:00
new Date('2017-08-24 00'); // false 2017-08-24 00:00:00
new Date('2017-08 00:00'); // true 2017-08-01 00:00:00
new Date('2017 00:00'); // true 2017-01-01 00:00:00
Angular是使用Typescript
Typescript是Javascript transpiler
然后Angular是javascript
想要在Angular项目中进行日期验证吗?
使用moment.js