将日历日期导出到电子表格 - 时间被剥离 - Google Script

时间:2016-08-10 02:36:27

标签: date time google-apps-script spreadsheet strip

我正在使用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中使用的解析。也许我以错误的方式使用它。

非常感谢帮助。

2 个答案:

答案 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服务中尝试Utilitieshttps://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, ('')]];