我正在使用Google Script将一些日历事件导出到电子表格中;我脚本的相关部分如下:
var details=[[mycal,events[i].getTitle(), events[i].getDescription(), events[i].getLocation(), events[i].getStartTime(), myformula_placeholder, ('')]];
var range=sheet.getRange(row,1,1,7);
range.setValues(details);
此代码有效,但放入电子表格的“时间”是nnnnn.nn形式的实数。在电子表格本身,日期看起来很好,使用小数点左边的整数(例如10/15/2017),但小数是值的一部分,因此是电子表格值的一部分。
我的脚本将数据放入工作簿中的工作表中,另一个工作表读取具有上述日期类型的数据行,使用匹配函数(for today())查找另一个工作表中的特定日期信息。如果我可以摆脱小数,这将工作正常。
我如何使用上面的内容(如果我远离我发现的工作,我将重做几个小时的工作)但是只需要添加只需要输入电子表格的整数部分所以我需要使用today()的匹配函数可以很好地找到一个纯粹的日期?
我一直在挖掘,但是在尝试将它们放在一起时会出现错误。 “Parse”看起来像是一个很好的希望,但它失败了,因为验证不像getStartTime中使用的解析。也许我以错误的方式使用它。
非常感谢帮助。
答案 0 :(得分:0)
根据CalendarApp文档,getStartTime()
会生成Date
个对象。您应该能够从日期对象中单独提取日期和时间:
var eventStart = events[i].getStartTime(); // Returns date object
var startDate = eventStart.toDateString(); // Returns date portion as a string
var startTime = eventStart.toTimeString(); // Returns time portion as a string
然后,您可以将其中一个或两个写入电子表格。有关更多信息,请参阅w3schools Javascript日期参考: http://www.w3schools.com/jsref/jsref_obj_date.asp
如果您要指定字符串格式,可以在formatDate
服务中尝试Utilities
:
https://developers.google.com/apps-script/reference/utilities/utilities#formatdatedate-timezone-format
答案 1 :(得分:0)
您可以使用Math.floor()函数
http://www.w3schools.com/jsref/jsref_floor.asp
将实数舍入为整数。然后你的行会读到:
var details=[[mycal,events[i].getTitle(), events[i].getDescription(), events[i].getLocation(), Math.floor(events[i].getStartTime()), myformula_placeholder, ('')]];