我有一张电子表格,我们用它来记录我们的工作。我已经将表格中的日期列读入数组,以便我可以对它们执行操作/计算。这对我不起作用,因为我在调试器中注意到包含日期的数组的值具有不同的日期值格式。例如,一些显示为“16/11/2012”,一些显示为(new Date(1355184000000)
)。日期格式之间的转换
有人可以指出一种方式将它们全部转换为统一格式,以便我可以使用它们吗?
谢谢
我有一张电子表格,我们用它来记录我们的工作。我已经将表格中的日期列读入数组,以便我可以对它们执行操作/计算。这对我不起作用,因为我在调试器中注意到包含日期的数组的值具有不同的日期值格式。例如,一些显示为“16/11/2012”,一些显示为(new Date(1355184000000)
)。日期格式之间的转换
有人可以指出一种方式将它们全部转换为统一格式,以便我可以使用它们吗?
谢谢
你想如何显示日期?你想让它们成为'日期对象'还是字符串?您在代码中显示的值(新的日期(13551.84亿))对应于Mon Dec 10 16:00:00 PST 2012
您可以检查通过使用Logger.log(new Date(1355184000000))
相反"16/11/2012"
很可能不是一个日期,但一个字符串... (注:奇怪您使用的是“日/月/年”序列,因为我在您的个人资料中看到您在英国,因此我认为您会使用mm/dd/yyyy)。
既然你说你需要对这些项目进行一些计算,我猜他们都应该转换为日期对象以便在脚本中使用它们。 我建议你看some documentation on date object看看究竟应该如何做,而不会产生错误。不要忘了javascript中的日期始终为日期和时间,单位为hh:mm:ss和毫秒。您看到的整数值是自1970年1月以来的第一个毫秒数;-)
您也可以执行search on dates in this forum并找到相当多的间隔信息。
这里是一个小功能来说明:
function playWithTime(){
Logger.log('ref date = '+new Date(0))
var example = "june 30, 2013 23:59:00"
Logger.log(example+' = '+ new Date("june 30, 2013 23:59:00"))
Logger.log(example+' = '+ new Date("june 30, 2013 23:59:00").getTime()+' mS')
}
它将在Logger显示此:
ref date = Thu Jan 01 1970 01:00:00 GMT+0100 (CET)
june 30, 2013 23:59:00 = Sun Jun 30 2013 23:59:00 GMT+0200 (CEST)
june 30, 2013 23:59:00 = 1372629540000 mS
顺便说一句,注意记录器以不同的方式返回值,这取决于日光节省您的时区...我在比利时,六月在'夏季'时间(CEST)。它也可以在Google服务器的时区PDT或PST中显示。你不能依靠记录仪是恒定的(!),但是这是另一个故事;-)
编辑:如果你的日期字符串的形式为DD/MM/YYYY那么你或许应该重新排序像这样的代码:
function playWithTime2(){
Logger.log('original date string in UK format = 16/11/2012')
var d = "16/11/2012".split('/');
var d_ordered=d[1]+'/'+d[0]+'/'+d[2]
Logger.log('becomes '+d_ordered+' = '+new Date(d_ordered))
}
它返回
original date string in UK format = 16/11/2012
becomes 11/16/2012 = Fri Nov 16 2012 00:00:00 GMT+0100 (CET)
对不起,我将我以前的评论在回答中能够对其进行格式化更容易。然后删除它。 –