绑定并验证日期角度

时间:2017-08-30 03:29:27

标签: javascript angular typescript

我在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项目中,你用什么来进行日期验证?

提前致谢!

2 个答案:

答案 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