You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Apps脚本中添加日期≤今日的判断条件?

Google表格投资组合追踪器脚本添加日期条件修改方案

我在Google表格里搭建了一个投资组合追踪器,用于汇总股票的最终持仓量(已调整买卖情况)。当前使用以下Google Apps脚本,需要在if语句中添加额外条件:dt <= today(),但没有编程基础,不知道该如何操作。

原脚本代码

function myPortfolio(tickers, values, types, dates) {
 var total = []
 var sums = {}

 for(i = 0; i < tickers.length; i++){

 var t = tickers[i].toString()
 var ty = types[i].toString()
 var dt = dates[i]

 if(t != "Cash" && ty != "Dividend"){
     if(t in sums){
      sums[t] += Number(values[i])
     }
     else {
        sums[t] = Number(values[i])
     }
   }
  }

 for(var tickers in sums){

 if(sums[tickers]>0){
   total.push([tickers, sums[tickers]])
  }
 }
return total
}

修改后的脚本代码

function myPortfolio(tickers, values, types, dates) {
 var total = []
 var sums = {}
 // 获取当前日期并清零时分秒,避免时间部分干扰日期比较
 var today = new Date();
 today.setHours(0, 0, 0, 0);

 for(i = 0; i < tickers.length; i++){

 var t = tickers[i].toString()
 var ty = types[i].toString()
 var dt = dates[i]
 // 统一交易日期格式,确保和当前日期的比较逻辑一致
 var transactionDate = new Date(dt);
 transactionDate.setHours(0, 0, 0, 0);

 // 追加日期条件:仅统计交易日期不晚于今天的记录
 if(t != "Cash" && ty != "Dividend" && transactionDate <= today){
     if(t in sums){
      sums[t] += Number(values[i])
     }
     else {
        sums[t] = Number(values[i])
     }
   }
  }

 for(var ticker in sums){

 if(sums[ticker]>0){
   total.push([ticker, sums[ticker]])
  }
 }
return total
}

修改说明

  1. 新增当前日期处理:创建today对象并清零时分秒,确保只对比日期部分,不会因为当天的时间差导致判断偏差。
  2. 统一交易日期格式:把表格传入的dt转为标准Date对象并清零时分秒,避免因格式不一致导致的比较错误。
  3. 追加日期判断条件:在原if语句中加入transactionDate <= today,实现只统计日期不晚于今日的交易记录。

内容的提问来源于stack exchange,提问作者Piyush D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:41:01