getMonth不识别日期

时间:2017-01-13 15:23:22

标签: javascript arrays date google-sheets

所以我的googledocs文档在javascript中有以下2个函数:

function test(date) {
 return date.getMonth()+1 
}

function hours_monthly(target_month, target_year,  date_range, hour_range) {
  r = 0;
  for (i = 0; i < date_range.length ; i++){
    if (target_month == date_range[i].getMonth() +1 && date_range[i].getYear() - 2000 == target_year ){
       r += hour_range[i]
    }
  }
  return r
}

所以现在我想使用代码。虽然测试功能在阅读任何给定日期的月份时很合适,但通过分配&#34; = test(C9)&#34;到细胞。其中C9是指定日期为6/9/16的单元格。

如果使用第二个函数,它说它无法找到完全相同日期C9的getMonth()函数,只输出ERROR。更准确地说:

&#34;在2016年9月6日星期二00:00:00 GTM + 0200&#34;

找不到getMonth()函数

date_range是一个日期数组,hour_range是一个整数数组。 问题可能在于使用数组。

进行比较时会出现同样的问题:

function test2(date1, date2) {
  if (date1 > date2) {
    return 1
  }
  else {
   return 2 
  }


function hours_period(start_date, end_date, date_range, hour_range){
  r = 0;
  t = 0;
  for (i = 0; i < date_range.length; i++){
    if ( (date_range[i] >= start_date)  && (date_range[i] <= end_date) ){
       t += 1
       r += hour_range[i] 
    }

  }
  return [t, r]
}

现在再次test2功能完全正常但是只要我提供一个数组(date_range)它就会停止工作,在这种情况下它不会产生错误而只是输出[0,0]而不管有多少个日期适合if语句

1 个答案:

答案 0 :(得分:0)

您将日期作为字符串传递,字符串不具有getMonth方法。

通过在新日期(日期)中包装日期来修复它

&#13;
&#13;
public void readManifests() throws IOException {
    URLClassLoader classLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();

    for(URL url: classLoader.getURLs()) {
        Manifest manifest = new JarFile(url.getFile()).getManifest();
    }
}
&#13;
&#13;
&#13;