![](/img/trans.png)
[英]How to merge date and time as a datetime in Google Apps Spreadsheet script?
[英]concatenate date and time in google spreadsheet
我有一个脚本可以将电子表格中的事件导入日历:
function caltest1() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = 3; // Number of rows to process
var dataRange = sheet.getRange(startRow, 1, numRows, 5);
var data = dataRange.getValues();
var cal = CalendarApp.getDefaultCalendar();
for (i in data) {
var row = data[i];
var title = row[0]; // First column
var desc = row[1]; // Second column
var tstart = row[2];
var tstop = row[3];
var loc = row[4];
//cal.createEvent(title, new Date("March 3, 2010 08:00:00"), new Date("March 3, 2010 09:00:00"), {description:desc,location:loc});
cal.createEvent(title, tstart, tstop, {description:desc,location:loc});
}
}
如果我的电子表格包含以下数据,该脚本可以正常工作:
Title Description Start Stop Channel
Mr Dear no drinks 5/6/2014 20:55:00 5/6/2014 21:57:00 what ever
但是如果我创建自己的日期= CONCATENATE($ D4,“”,$ G4),它就不起作用,因为D4有一个日期而G4的时间合并为一个单元格的日期和时间。 我想是因为它感觉到连接创建了纯文本而不是时间格式,但我该如何解决它?
在电子表格中,日期具有整数的原始值,表示自1899年12月31日以来的天数,时间是十进制值,即一天的分数(6小时=一天的1/4,例如0.25天)。
因此,当您在电子表格中添加DATE + TIME (整数+小数)时,您将获得一个完整的日期和时间。
所以答案(正如你在另一个答案的评论中注意到的那样)在逻辑上是添加两个值。 这实际上是电子表格构建的原因! (使日期和时间易于使用)
在新列中使用公式=D2+E2
,您将获得一个可直接在JavaScript中使用的完整日期对象。
在Javascript日期和时间是相同的对象,没有时间对象没有日期,没有时间没有日期:它们的原始值是从1970年1月1日午夜(这是一个整数)计算的毫秒数。
由于连接字符串的类型是文本,因此可以在调用Calendar方法之前将它们转换为日期。
var tstart = new Date(row[2]);
var tstop = new Date(row[3]);
我通过使用成功连接了日期和时间
=text(A2,"dd/mm/yy") & ", " & text(B2,"HH:MM")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.