html - 在角度模板中增加日期
问题描述
我有类似下面的内容,我需要逐步显示日期
<ul>
<li *ngFor="let item of items">
<h2>
{{item.name}}
</h2>
<p >
{{item.description}}
</p>
<time>{{date | date:'dd/MM/yyyy'}}</time>
</li>
</ul>
日期需要显示为第一项,它显示今天的日期,然后是明天,依此类推。如果有一种方法只能通过使用 html 模板来完成,那就更好了。或者只是帮助最好的方法来做到这一点。
解决方案
我不认为只有日期管道可以做到这一点,它的主要用途是将当前日期转换为不同的显示。不添加/删除。您可以做的事情是创建您自己的具有偏移选项的日期管道
解决方案 1
创建新管道并使用矩库
import {Pipe, PipeTransform} from '@angular/core';
import * as moment from 'moment';
@Pipe({name: 'customDate'})
export class CustomDatePipe implements PipeTransform {
transform(date, format = 'dd/MM/yyyy', dayOffset = 0, monthOffset = 0, yearOffset = 0) {
return moment(new Date(date)).add(dayOffset, 'days')
.add(monthOffset, 'months')
.add(yearOffset, 'years')
.format(format);
}
}
然后在html中引用它
<ul>
<li *ngFor="let item of items; let i = index">
<span>{{date | customDate: 'dd/MM/yyyy': i}}</span>
</li>
</ul>
解决方案 2
或者您可以使用 vanilla javascript Date 以及自定义管道
import {Pipe, PipeTransform} from '@angular/core';
@Pipe({name: 'customDate'})
export class CustomDatePipe implements PipeTransform {
transform(date, format = 'dd/MM/yyyy', dayOffset = 0) {
return new Date(date).addDays(dayOffset);
}
}
并像这样引用它
<ul>
<li *ngFor="let item of items; let i = index">
<span>{{date | customDate: i | date: 'dd/MM/yyyy'}}</span>
</li>
</ul>
推荐阅读
- python - 如何在基于函数的视图中返回多个自定义过滤器
- xml - 加载 XML 有多个命名空间到 SQL usnig SSIS
- javascript - 渐进式地创建数组 js
- android - 我正在尝试在 recyclerview 中从 firebase 检索数据?每当我单击按钮时,应用程序就会崩溃
- python - mongodb使用python向现有数组添加一个新字段
- sql - 如何跨多个数据库使用临时表?
- wordpress - 如何限制 wordpress 管理区域分页中的总帖子数?
- email - Elastalert 使用字段值作为电子邮件警报中的地址
- python - 平滑轮廓边缘
- splunk - 如何获取不同时间范围的 splunk 报告