我想用 ngIf 直接在 html 組件中比較兩個日期
我嘗試使用此代碼,但它沒有作業,
我希望今天的日期大于 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"
}
uj5u.com熱心網友回復:
使用每個日期的時間戳。
您可以使用 獲取它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);
uj5u.com熱心網友回復:
由于您的日期格式為 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());
uj5u.com熱心網友回復:
您可以輕松地yyyy-MM-dd從 Date 物件中獲取toISOString并切掉不必要的部分,沿著線
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">
uj5u.com熱心網友回復:
在處理日期時,請使用一些經過良好測驗且健壯的庫,例如可搖樹的date -fns,支持語言環境并且也可以與內置的 Date 物件一起使用。
isAfter(
parse(item.tabela.vPromoData, 'yyyy-MM-dd', new Date()),
new Date()
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/518050.html
