在谷歌电子表格中连接日期和时间
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
但是如果我创建自己的date =CONCATENATE($D4, " ",$G4),则不起作用,因为D4有日期,G4有时间组合成单个单元格date和time。我认为,因为它感觉到连接创建的是纯文本而不是时间格式,但我该如何修复它呢?
在电子表格中,日期的本机值是一个整数,表示自1899年12月31日以来的天数,时间是一个十进制值,是一天的分数(6小时=一天的1/4,例如,0.25天)。
所以当你在电子表格中添加DATE+TIME(整数+十进制)时,你会得到一个完整的日期和时间。
因此,答案(正如您在对另一个答案的评论中注意到的那样)在逻辑上是ADD两个值。这实际上就是电子表格这样构建的原因!(方便使用日期和时间)在新列中使用公式=D2+E2
,您将获得一个完整的日期对象,可直接在JavaScript中使用。
在Javascript中date和time是相同的对象,不存在没有日期的time对象,也不存在没有时间的date对象:它们的原生值是从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")
I连接日期和时间
相关文章:
- 更改angularjs中的日期-时间格式
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 将日期时间从json转换为可读格式
- 使用时刻.js从日期时间中提取时间
- 两个日期时间选择器
- Javascript:如何在onChange事件期间更改日期时间值
- .Net webApi ISO日期时间和IE8
- Javascript-如何使用bootstrap日期时间选择器自动计算两个时间输入之间的差异
- 转换日期时间格式
- 在JavaScript中转换日期/时间格式
- JavaScript JSON关联对象键和值都作为日期时间戳
- 将日期时间javascript绑定到表列
- 将JS日期解析为C#日期时间
- 使用JavaScript将客户端日期/时间字符串转换为JSON日期/时间串
- 从javascript数组获取php的日期时间
- 格式化momentjs日期时间
- 这个正则表达式的日期/时间有什么问题
- Mongoose查询在两个日期时间之间提取数据
- 当转换为Python日期时间时,Node的时间戳落后3分钟
- 自定义angularjs过滤器日期时间格式额外字符