首页 > 解决方案 > 比较日期谷歌表格脚本

问题描述

我正在尝试设置一个脚本(用于谷歌表格),一旦我在第二列引入日期,如果结果比明天(或过去)早,它会返回一个带有特定消息的消息框。这是我到目前为止所尝试的,但似乎我在比较日期时做错了。

function onEdit(e) {

  var today = new Date(); 
  var minDate = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+(today.getDate()+1);

  if (e.range.columnStart == 2 && e.value.toString()<minDate){
    Browser.msgBox('WARNING MESSAGE...');
  }
}

关于为什么它不起作用的任何想法?谢谢!

标签: javascriptgoogle-apps-scriptgoogle-sheetsspreadsheet

解决方案


您应该使用 Date JavaScript 对象来比较日期。因为用字符串做它只是按字母顺序做。对你来说,这可能看起来像这样

function onEdit(e) {
    var minDate = new Date();
    minDate.setDate(minDate.getDate() + 1); // Add one to the day
    minDate.setMonth(minDate.getMonth() + 1); // Add one to the month
    if (e.range.columnStart == 2 && new Date(e.value.toString()) < minDate) {
        Browser.msgBox('WARNING MESSAGE...');
    }
}

这会将您从 e.value 获得的字符串日期解析为 JavaScript 日期对象,以便将其与 minDate 进行比较。


推荐阅读