sAn*_*ntd 5 typescript angular
我正在尝试比较typescript/angular 4 中的日期。就我而言,我将系统日期分配给名为“today”的变量,并将数据库日期分配给名为“dateToBeCheckOut”的变量。然后我使用 if 语句比较日期,在我的情况下,我希望得到结帐日期小于(之前)今天日期的预订。但是我得到了意想不到的结果,而不是得到了预期的结果。我在下面附上了我的代码,并希望有人帮助理解它为什么会发生。
这是代码
for(let k = 0; k < this.bookingDetailsArrayRealObject.length; k++){
let dateCheckOut = this.bookingDetailsArrayRealObject[k].package.chackout;
let dateToBeCheckOut = new Date(dateCheckOut);
let today = new Date(Date.parse(Date()));
//let today_test = new Date();
if(this.bookingDetailsArrayRealObject[k].status){
if(dateToBeCheckOut.toDateString() < today.toDateString()){
this.bookingIdsToBeUpdated.push(this.bookingDetailsArrayRealObject[k]._id);
window.alert('true');
console.log(today.toDateString());
console.log(dateToBeCheckOut.toDateString());
console.log(this.bookingDetailsArrayRealObject[k]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在控制台结果中,根据 if 语句,第三个是意外的。任何建议将不胜感激。
您可以比较日期对象,而无需将它们转换为字符串。尝试:
for(let k = 0; k < this.bookingDetailsArrayRealObject.length; k++){
let dateCheckOut = this.bookingDetailsArrayRealObject[k].package.chackout;
let dateToBeCheckOut = new Date(dateCheckOut);
let today = new Date();
//let today_test = new Date();
if(this.bookingDetailsArrayRealObject[k].status){
if(dateToBeCheckOut < today){
this.bookingIdsToBeUpdated.push(this.bookingDetailsArrayRealObject[k]._id);
window.alert('true');
console.log(today.toDateString());
console.log(dateToBeCheckOut.toDateString());
console.log(this.bookingDetailsArrayRealObject[k]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24318 次 |
| 最近记录: |