这将使我获得当前时间(以秒为单位):
let currentTimeInSeconds = new Date().getTime() / 1000;
我有一个对象为expirationDate
的数组,它以秒为单位返回该信息。我可以获得过期的账单,但是,我想过滤出今天过期的账单。
this.ExpiringTodayBills = this.UnpaidDuebills.filter(bills => bills.paid === false && bills.expirationDate = currentTimeInSeconds);
上面的代码不起作用,因为当前时间由于小时,分钟,秒和毫秒而不断变化。
如果expirationDate =今天,无论时间如何,我将如何比较?
修改:这是帐单示例
名称:测试帐单
已支付:错误
有效期:1535598000(表示2018年8月30日3:00:00)
金额: 231.33
答案 0 :(得分:2)
怎么样?
isExpiringToday(expirationDate) {
const start = new Date();
start.setHours(0, 0, 0, 0);
const end = new Date();
end.setHours(23, 59, 59, 999);
const expiryDateTimeStamp = expirationDate * 1000;
return (expiryDateTimeStamp > start && expiryDateTimeStamp < end);
}
this.ExpiringTodayBills = this.UnpaidDuebills
.filter(bills => !bills.paid && this.isExpiringToday(bills.expirationDate));
您可以通过打开浏览器开发工具,转到控制台并执行以下操作来对此进行测试:
function isToday(expiryDateTimeStamp) {
const start = new Date();
start.setHours(0, 0, 0, 0);
const end = new Date();
end.setHours(23, 59, 59, 999);
return (expiryDateTimeStamp > start && expiryDateTimeStamp < end);
}
var newDate = new Date();
isToday(newDate.getTime()) // true
答案 1 :(得分:0)
您应该遍历数据,并将expirationDate
从currentTimeInSeconds
转换为date
。库moment.js
可能会有所帮助。
接下来,您可以执行以下操作:
this.ExpiringTodayBills = this.UnpaidDuebills.filter(bills => bills.paid === false && bills.expirationDate = today);
const today = moment().format('MM/DD/YYYY');
console.log(today);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>