【问题标题】:why aren't dates equivalent in apps script [closed]为什么应用程序脚本中的日期不等价[关闭]
【发布时间】:2020-10-25 20:54:36
【问题描述】:

公开表:https://docs.google.com/spreadsheets/d/1pXrUkA-fY1hw3bie4Bv1mamkmzics9dfX59B12spuPI/edit?usp=sharing

问题:我有两个日期看起来相同,但应用程序脚本说它们不是。 我有一张日期表。我循环浏览日期以查看一个日期是否等于前一个日期。 脚本(从第二行开始)应该返回 true、false、true。但相反,它返回 false、false、false。 有没有想过为什么会这样?

9/8/2020
9/8/2020 // should be true, returns false
9/15/2020 // should be false, ok
9/15/2020 // should be true, returns false

代码 sn-ps

  //test code
  for (var r=10;r<=14;r++){
  for (var c=2;c<=4;c++){
    Logger.log(sh.getRange(r,c).getValue());
    Logger.log(sh.getRange(r-1,c).getValue());
    Logger.log(sh.getRange(r,c).getValue() == sh.getRange(r-1,c).getValue());
  }}

Logger response (shows dates are objects but equivalent dates aren't...):
[20-10-25 17:05:30:975 EDT] Tue Sep 08 00:00:00 GMT-04:00 2020
[20-10-25 17:05:30:976 EDT] object
[20-10-25 17:05:30:977 EDT] Tue Sep 15 00:00:00 GMT-04:00 2020
[20-10-25 17:05:30:979 EDT] object
[20-10-25 17:05:30:980 EDT] false
[20-10-25 17:05:30:981 EDT] false
[20-10-25 17:05:30:982 EDT] Tue Sep 15 00:00:00 GMT-04:00 2020
[20-10-25 17:05:30:984 EDT] object
[20-10-25 17:05:30:986 EDT] Tue Sep 15 00:00:00 GMT-04:00 2020
[20-10-25 17:05:30:987 EDT] object
[20-10-25 17:05:30:989 EDT] false
[20-10-25 17:05:30:990 EDT] false

【问题讨论】:

  • 您可以在数字上比较来自 getTime() 或 valueOf() 方法的 Date() 值。 ref
  • 而不是使用 getValue() 使用 const vA= getValues() 然后你可以做类似const dt=new Date();if(Date(vA[r][c]).valueOf()==dt.value())
  • 如果你只对日期而不是时间感兴趣,那么你会想要做类似const date=new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()) 这样的事情,就像获得午夜的价值
  • @JasonTorpy 为什么不简单地将 B 列的格式更改为具有两种匹配格式,然后使用我在回答中提到的 getDisplayValues ?
  • 我们已经有几个类似的问题已经得到解答,例如Compare two dates Google apps script

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


【解决方案1】:

@Ruben 引用了一个很好的答案about datetime processing date 拉入一个对象,因此它不一定比较值,而是比较整个对象。 通过拉出等弦线进行比较,我得到了正确的结果:

array[0][1].toISOString() 

【讨论】:

  • 我再次使用显示值来更好地了解您实际比较的内容。在屏幕上看到一些东西,你确定你正在获取完全相同的字符串。
猜你喜欢
  • 2019-12-01
  • 1970-01-01
  • 2011-11-13
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多