javascript - 比较日期谷歌表格脚本
问题描述
我正在尝试设置一个脚本(用于谷歌表格),一旦我在第二列引入日期,如果结果比明天(或过去)早,它会返回一个带有特定消息的消息框。这是我到目前为止所尝试的,但似乎我在比较日期时做错了。
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...');
}
}
关于为什么它不起作用的任何想法?谢谢!
解决方案
您应该使用 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 进行比较。
推荐阅读
- java - 使用带有 addActionListener 的 JButton 将 JPanel 添加到另一个 JPanel
- javascript - 在 JavaScript 中的所有键值中搜索对象数组
- java - 从大型响应对象中检索一些字段
- tcp - 如何在 kprobe 程序中使用 enum tcp mib 定义?
- reactjs - 当在 react Jest 中运行 npm test 时,我会看到下面的消息,而我要做的就是运行默认情况下在 App.test.js 中提供的测试
- selenium - 从我原来的 chrome 应用程序中获取 cookie 并将其传递到 selenium chrome 浏览器
- c# - 如何在 .NET Core 中为功能测试创建一个虚拟数据库?
- c# - 当我尝试反序列化时,DataContractSerializer 为所有变量返回 null
- html - 引导列内的光滑滑块自定义点
- ios - SWIF 错误消息:实例化视图控制器...但没有获得 UICollectionView。