javascript - Google Sheets 脚本日期比较未返回预期结果

标签 javascript datetime google-apps-script google-sheets

我为 Google 脚本编辑器编写了这两个函数,以将其扩展到工作表中,以确定事件是否应在上次发生时给出,以及应该发生的频率。

例如,某种药物每天需要服用两次,最后一次服用是在 2020 年 3 月 29 日 12:00,那么如果现在时间是 2020 年 3 月 30 日 01,函数需要返回“Due” :00,因为比到期时间晚了一个小时,即 2020 年 3 月 30 日 00:00。

我在调用“IsDue”时得到的结果不是我所期望的。我将日期/时间与现在进行比较是否正确?

function ReturnFrequencyInDays( unit, quantity)  {
  switch(unit) {
    case "Hours":
      return quantity/24;
      break;
    case "Days":
      return quantity;
      break;
    case "Weeks":
      return quantity * 7;
      break;
    case "Months":
      return quantity * 30;
      break;
    case "Years":
      return quantity * 365;
      break;
    default:
      return "Invalid unit";
  }
}


function IsDue(how_often,unit,every,last_occurance){
  var currentTime=new Date();
  if (((ReturnFrequencyInDays(unit,every)/how_often) + last_occurance )<=currentTime) {
    return "Due";
  } else {
    return "Not Due";
  }
}

最佳答案

您需要提供更多关于您希望该函数执行的操作的说明。但我从您的术语假设您尝试将天数与此处的日期进行比较:

var currentTime = new Date();
    if(((ReturnFrequencyInDays(unit,every)/how_often) + last_occurance)<= currentTime){
    return "Due";
  }

那是行不通的。您可以使用 valueOf() 或 getMilliseconds() 方法从引用日期获取毫秒数,然后将它们转换为天数,但我的猜测是这也不是您真正想要的。因此,为了获得更好的答案,请更好地解释预期用途以及您打算如何调用这些函数。

关于javascript - Google Sheets 脚本日期比较未返回预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60919020/

相关文章:

javascript - polymer 核心过渡不起作用

javascript - DocumentFragment 丢失了我的部分内容

javascript 使用 htpasswd 进行身份验证并获取 json

Django 过滤器日期格式不正确

PHP SQL 查询比较预定义日期时间格式中的 DATE

google-apps-script - Google Apps 脚本 : Create New Document (Spreadsheet) from Template

Javascript:延迟加载图像的自定义脚本出错

date - 如何在 Julia 中自动检测和解析日期格式?

email - 如何仅向新的 Google 表单回复(未编辑过的回复)发送自动电子邮件?

javascript - 根据单选按钮选择切换子类别 div