RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1300132
Accepted
Дмитрий Рябкин
Дмитрий Рябкин
Asked:2022-06-29 17:23:44 +0000 UTC2022-06-29 17:23:44 +0000 UTC 2022-06-29 17:23:44 +0000 UTC

如何获取当前日期并进行比较

  • 772

有几个问题。

描述:在 Google 表格、应用程序脚本中,我遍历一个范围并查找一个字符串。如果它包含一个名称,那么我会得到它在该范围内的位置。在下一列中的这个名称旁边有一个相应的日期,在帮助下,getRange()我得到了与找到的名称(字符串)相对应的日期。接下来,在循环之外的一个单独条件中,我需要比较循环中接收到的日期是否等于脚本中作为对象接收到的日期。以下是问题:

  1. 如何获取实际日期,但格式дд.мм.гггг没有时间。也就是说,一切都应该像常规的新数据对象一样,但没有мин.сек.милсек.

  2. 如何比较格式中的实际日期дд.мм.гггг与我作为循环结果收到的日期。дд.мм.гггг据我了解,从周期中确定日期也是可取的。

编码

function timeDay() {
    var list1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Контроль");
    var list2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Работники/данные/списки");
    var infmail = list2.getRange(1, 4, 100, 1).getValues();
    // Logger.log(infmail);
    var infNameTime = list1.getRange(1, 4, 100, 1).getValues();
    var infNameTime2 = list1.getRange(3, 4, 100, 1).getValues();
    //Logger.log(infNameTime);



    var email = Session.getActiveUser().getEmail();
    var date = new Date(); //получаю дату


    //Logger.log(date);

    var malpz;
    var mal = [];
    var maillist = [];
    for (var i = 0; i < infmail.length; i++) {
        if (infmail[i].indexOf(email) !== -1) {
            mal.push([i + 1]);
            maillist.push(infmail[i]);
            malpz = i + 1;
        }
    }
    //Logger.log(malpz);
    //Logger.log(mal);
    //Logger.log(maillist);
    var nameMail = list2.getRange(malpz, 2).getValues();
    //Logger.log(nameMail);


    var dd;
    var tt;
    var namepz = [];
    var namelist = [];
    for (var b = 0; b < infNameTime.length; b++) {
        if (infNameTime[b][0].indexOf(nameMail) !== -1) {
            namepz.push([b + 1]);
            namelist.push(infNameTime[b]);
            tt = b + 1;
            dd = list1.getRange(tt, 3).getValue();

通过这一行,我得到了实际日期,但我想以上述格式获取它

var date = new Date();

此行包含相对于名称的日期

dd = list1.getRange(tt,3).getValue();

我从与格式相同的字符串中获取它

var date = new Date();

但我想得到上述格式,然后应用条件,在此期间 if 将比较并执行块。日期没有小时、分钟、秒、毫秒是非常重要的。从逻辑上讲,应该只比较日、月、年。

google-apps-script
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    contributorpw
    2022-06-30T17:54:53Z2022-06-30T17:54:53Z

    最简单的是将两个日期作为数字进行比较

    console.log(date1.getTime() === date2.getTime());
    

    Apps 脚本的每日比较

    const roundDate_ = 
      (date) => 
        Utilities.formatDate(date, 'Europe/Moscow', 'yyyy-MM-dd');
    
    console.log(roundDate_(date1) === roundDate_(date2));
    

    Apps 脚本的格式比较

    const roundDateFormat_ = 
      (date, format) => 
        Utilities.formatDate(date, 'Europe/Moscow', format);
    
    // сравнивает только по месяцам
    console.log(roundDate_(date1, 'yyyy-MM') === roundDate_(date2, 'yyyy-MM'));
    

    一般 JS 的比较(添加)

    const roundDate_ = 
      (date) => 
        new Intl.DateTimeFormat('ru-RU').format(date);
    
    console.log(roundDate_(date1) === roundDate_(date2));
    

    等等 等等

    对于大量比较,该方法Utilities.formatDate可以“及时下垂”。那么最好使用本机日期舍入方法。例如,

    const roundDate_ = date => {
      const date_ = new Date(date);
      date_.setHours(0 ,0 ,0 , 0);
      return date_;
    }
    

    getTime()此外,通过数字进行比较。

    注意项目和电子表格时区,它们会导致计算中的时区偏移错误。

    • 1

相关问题

  • 计算两个单元格之间的时间差

  • 是否可以以编程方式更改编辑 Google 电子表格表格或单元格的访问权限?

  • 如何确定数组是否相等

  • 为什么会出现错误:异常:您无权调用SpreadsheetApp.openById?

  • 清除特定颜色的表格单元格的内容

  • 如何在 GET 请求中传递二维数组?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    表格填充不起作用

    • 2 个回答
  • Marko Smith

    提示 50/50,有两个,其中一个是正确的

    • 1 个回答
  • Marko Smith

    在 PyQt5 中停止进程

    • 1 个回答
  • Marko Smith

    我的脚本不工作

    • 1 个回答
  • Marko Smith

    在文本文件中写入和读取列表

    • 2 个回答
  • Marko Smith

    如何像屏幕截图中那样并排排列这些块?

    • 1 个回答
  • Marko Smith

    确定文本文件中每一行的字符数

    • 2 个回答
  • Marko Smith

    将接口对象传递给 JAVA 构造函数

    • 1 个回答
  • Marko Smith

    正确更新数据库中的数据

    • 1 个回答
  • Marko Smith

    Python解析不是css

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5