如何使用ScriptApp Custom功能查找和替换基于时间的触发器的日期和日期

时间:2016-01-12 14:30:16

标签: replace google-apps-script google-docs

我有一个Google文档,文档正文中只有一个日期。我正在尝试编写一个每24小时更新一次日期的脚本。

文档中的日期目前设置为“11/01/2016”作为文本,比今天(2016年1月12日)少1天。我假设使用replaceText()会起作用。

这是我目前的剧本。

ScriptApp.newTrigger("myFunction")
.timeBased()
.atHour(24)
.everyDays(1)
.inTimezone("GMT")

function myFunction() 
{
 var date = Utilities.formatDate(new Date(), "GMT", "dd/MM/yyy"); 
 var doc = DocumentApp.openById("ID of Document");
 doc.replaceText(date-1,date) ;
}

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

您无法替换文档对象上的文本,您需要获取文档正文。您的date是一个字符串,您无法通过date-1获得昨天。也参考日期转换。

function myFunction() 
{
 var body = DocumentApp.getActiveDocument().getBody();
 var d = new Date();
 var yesterdayDate = Utilities.formatDate(new Date(d.getTime()-1*(24*3600*1000)), "GMT", "dd/MM/yyy"); 
 var todayDate = Utilities.formatDate(d, "GMT", "dd/MM/yyy"); 
 body.replaceText(yesterdayDate,todayDate) ;
}