繁体   English   中英

如何检查当前日期是否与 javascript 中日期列表中的日期相同?

[英]How to check if current date is same as date from list of dates in javascript?

因此,例如,我有 3 个日期:

  • 2020-07-14

  • 2020-07-16

  • 2020-07-15

如果任何日期与当前日期(2020-07-16)匹配,我应该显示当天的值。 这是我写的代码,但每次我重新加载页面时,都会显示其他值:

for (var i = 0; i < response.pen_feeding_scheduler_list.length; i++) {
      if (response.pen_feeding_scheduler_list[i].feeding_frequency_rule) {
         vm.feed_date_start = response.pen_feeding_scheduler_list[i].start_feeding_date;
         var current_date = new Date().toISOString().slice(0, 10);
      if (current_date == vm.feed_date_start) {
         vm.dateSet = true;
      } else if (moment(vm.feed_date_start).isBefore(current_date)) {
         vm.dateSet = true;
      } else if (moment(vm.feed_date_start).isAfter(current_date)) {
         vm.dateSet = false;
      }
        if (vm.dateSet) {
        response.feeding_frequency = getFrequency(response.pen_feeding_scheduler_list[i].feeding_frequency_rule);
         }
           }
      }

简单地:

  • 将当前日期格式化为字符串
  • 简单地比较两个字符串

 const dates = ['2020-07-14', '2020-07-16', '2020-07-15']; console.log( dates.includes( new Date().toISOString().slice(0, 10) ) );

我认为您应该以相反的方向处理它,而不是将当前日期格式化为接收日期格式(YYYY-MM-DD),只需将这些日期格式化为时间戳。

 const currentDate = new Date(); currentDate.setHours(0) currentDate.setMinutes(-currentDate.getTimezoneOffset()) currentDate.setSeconds(0) currentDate.setMilliseconds(0) const currentTimestamp = currentDate.getTime(); // transforming date into universal timestamp console.log(currentTimestamp === new Date("2020-07-14").getTime()); console.log(currentTimestamp === new Date("2020-07-16").getTime());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM