如何将当前系统日期与另一个日期进行比较

时间:2019-04-01 20:02:30

标签: javascript html angular typescript

我正在从API以字符串格式获取日期。 End Date 2014-06-03T06:16:52。我需要编写一个if-else逻辑并比较结束日期​​和当前日期。如果结束日期小于当前日期,则将客户显示为有效,如果结束日期大于将客户显示为有效。 我已经尝试遵循以下逻辑,但是我无法从atat中理解并获得今天的时间。

  this.endDate = this.sampleData != null ? 
  this.sampleData.customerStartDate : null;
  this.currentDate = new Date();
  var dd = this.currentDate.getDate();
  var mm = this.currentDate.getMonth() + 1;
  var yyyy = this.currentDate.getFullYear();
  this.currentDate = new Date().toLocaleString()
  console.log('End Date', this.endDate);
  console.log('Current Date: ', this.currentDate);
  if (this.endDate == null) {
    this.customerStatus = 'Active';
  } else {
    this.customerStatus = 'In Active';
  }

我将当前日期设为Current Date: 4/2/2019, 1:23:34 AM 我希望能够获得与“结束日期”相同的格式。 我的主要任务是比较日期如何实现?

4 个答案:

答案 0 :(得分:1)

理想情况下,您希望清理从API获取的日期,并将其转换为JS Date对象。您可以通过仅保留2014-06-03T06:16:52部分并将其分配给new Date()构造函数来实现此目的。

您可以通过不带参数的调用new Date()来获取当前日期。

您可以通过在每个日期上调用getTime()将日期转换为数字。

然后您可以比较数字。

const incoming_date = new Date('2014-06-03T06:16:52');
const current_date = new Date();
if (incoming_date.getTime() < current_date.getTime() {
    // incoming_date is before current_date
} else {
    // current_date is before incoming_date
}

答案 1 :(得分:0)

就这么简单

let date=new Date("2014-06-03T06:16:52")

date>new Date()

答案 2 :(得分:0)

我个人喜欢使用moment()作为JavaScript日期。您真的只需要比较相同的格式即可,因此您可以使用类似的东西:

this.currentDate = moment().toISOString();
const dataDate = this.sampleData ? this.sampleData.customerStartDate : null;
this.endDate = moment(dataDate).toISOString();
if (this.endDate > this.currentDate) {
    this.customerStatus = 'Active';
} else {
    this.customerStatus = 'Inactive';
}

答案 3 :(得分:0)

您可以尝试使用build.gradle用Unix纪元表示以毫秒为单位的日期,并进行比较

getTime()