2013-03-05 57 views
8

我有日期不同的日期数组。在Google Apps脚本中将日期/时间设置为00:00:00

实施例:{13年4月15日5时00分○○秒,13年3月10日13:00:00,13年2月10日02:00:00,等}

如果我想要将小时更改为00:00:00,因此该阵列会显示为:

{4/15/13 00:00:00,03/10/13 00:00:00,02/10/13 00 :00:00等}

我该怎么做?

我试过使用getTime(),但是我没有控制几个小时。任何帮助都会很棒。 谢谢!

编辑:我想这个循环:

for (var i = 0; i < gValues.length; i++) { // repeat loop 
    sheet.getRange(i + 2, 7, 1, 1).setValue(gValues[i][0].setHours(00,00,00,00)); 
    } 

而不是所期望的结果,我得到这个值:“12/20/5828963 0:00:00”的每一个细胞。

+0

是您的工作日日期或版本中的值gs? (即,您可以更改电子表格格式设置中的日期格式)返回的实际值是什么“12/20/5828963 0:00:00” – 2013-03-05 19:44:45

+0

不是它们是日期,而不是字符串。 {3/16/2013 17:00:00 3/16/2013 17:00:00 3/20/2013 5:00:00 3/20/2013 5:00:00 3/21/2013 5:00:00 3/21/2013 5:00:00 3/21/2013 5:00:00 3/25/2013 5:00:00 3/25/2013 5:00:00 3/13/2013 5:00:00 3/26/2013 1:00:01 3/6/2013 4:00:00 3/5/2013 4:00:00 3/19/2013 5:00:00 3/26/2013 1:00:00 3/2/2013 4:00:00 3/18/2013 5:00:00} – user1786546 2013-03-05 20:22:53

+0

我的例子中没有看到任何分隔符...... ??请参阅编辑答案举例。 – 2013-03-05 20:28:40

回答

13

谷歌Apps Script是JavaScript的,日期操作are explained here

设定的时间是这样的:

Date.setHours(hour,min,sec,millisec) 

这里有一个例子:

// 3/16/2013 17:00:00 

function test(){ 
var x = new Date('3/16/2013 17:00:00');// x is now a date object 
x.setHours(0,0,0,0); set hours to 0, min Secs and milliSecs as well 
Logger.log(x);// show result 
} 

记录仪值:Sat Mar 16 00:00:00 GMT+01:00 2013

+0

请参阅我编辑的问题。 – user1786546 2013-03-05 19:36:14

+0

你的例子做到了。谢谢!出于某种原因,我必须使新的Date()成为一个单独的变量。 – user1786546 2013-03-05 23:25:27

+0

@ user1786546 - 当然你必须把它放在一个单独的变量中,因为“setHours”函数返回一个数字,如果你将“new Date”和“setHours”分配在一起,那么“x”变量将得到这个数字而不是日期对象,如通缉。 – TheCuBeMan 2016-05-10 11:10:08