如何将两个日期与ngIf进行比较



我想直接在html组件中用ngIf 比较两个日期

我试过用这个代码,但没有用,

我想当今天的日期大于vPromoData日期时,不要显示我的div 的内容

<div *ngIf=" item.tabela.vPromo && today < item.tabela.vPromoData " >{{item.tabela.vPromoData | json}}</div>

public today = new Date();

"tabela": {
"itemTabela_id": 2,
"item_id": 7650,
"vVenda": 95.9,
"vPromo": 77.5,
"vPromoData": "2022-09-25"
}

您可以很容易地从toISOString的Date对象中获取yyyy-MM-dd,并沿着线切割不必要的部分

const todayAsString = new Date().toISOString().split('T').shift(); 
console.log(todayAsString);

但是:Angular有一个内置管道date,用于格式化日期。只需在模板中使用即可

<div *ngIf="item.tabela.vPromo && (today | date: 'yyyy-MM-dd') < item.tabela.vPromoData">

使用每个日期的时间戳。

你可以用yourDate.getTime()得到它,它返回一个你可以比较的数字。

const date = new Date();
const now = Date.now();
const yesterday = date.setHours(-24);
console.log(now);
console.log(yesterday);
console.log(now > yesterday);

编辑

带有字符串日期,如

const date = '2022-10-18';
const now = new Date(...date.split('-')).getTime();
const yesterday = new Date(...date.split('-')).setHours(-24);
console.log(now);
console.log(yesterday);
console.log(now > yesterday);

由于您有yyyy-MM-dd格式的日期,您可以比较"字符串";,唯一的是转换为字符串";今天";

dateToString(date:any)
{
return date.getFullYear()+'-'+
('00'+(date.getMonth()+1)).slice(-2)+'-'
('00'+date.getDate()).slice(-2)
}
//And use 
todayTxt:string=this.dateToString(new Date());

在处理日期时,请使用一些经过良好测试且健壮的库,如可树摇的日期函数库,它支持区域设置,也可与内置的日期对象一起使用。

isAfter(
parse(item.tabela.vPromoData, 'yyyy-MM-dd', new Date()), 
new Date()
)

相关内容

  • 没有找到相关文章

最新更新