如何格式化谷歌表单的JavaScript时间戳?
我如何使用JavaScript将时间戳(从纪元开始以毫秒为单位)转换为Google Sheets图表可以使用的日期和时间格式 我的第一次尝试是使用如何格式化谷歌表单的JavaScript时间戳?,javascript,datetime,google-sheets,Javascript,Datetime,Google Sheets,我如何使用JavaScript将时间戳(从纪元开始以毫秒为单位)转换为Google Sheets图表可以使用的日期和时间格式 我的第一次尝试是使用timestamps.map(timestamp=>newdate(timestamp).tolocalString())映射时间戳,但Google Sheets不接受此格式作为有效的日期和时间格式: 我相信你目前的情况和目标如下 通过手动复制和粘贴脚本[{timestamp:1617413162282,value:1},{timestamp:161
timestamps.map(timestamp=>newdate(timestamp).tolocalString())
映射时间戳,但Google Sheets不接受此格式作为有效的日期和时间格式:
我相信你目前的情况和目标如下
- 通过手动复制和粘贴脚本
。[{timestamp:1617413162282,value:1},{timestamp:1617413239904,value:2}].map(el=>`${new Date(el.timestamp).tolocalString()}\t${el.value}}获取的值来放置这些值。join(“\n”)
和timestamp
的值分别放在列“A”和“B”中value
- 您希望使用复制的
值作为日期对象时间戳
timestamp
的值作为字符串。我想这可能是你问题的原因。在本例中,为了将timestamp
的值作为日期对象,我建议使用Google Apps脚本来放置这些值。使用Google Apps脚本时,可以将timestamp
的值作为日期对象。示例脚本如下所示
示例脚本:
请将以下脚本复制并粘贴到要使用的Google电子表格的脚本编辑器中。并且,请设置ar
和sheetName
的变量,并使用脚本编辑器运行myFunction
功能。通过此操作,将值放入sheetName
的工作表中。在这种情况下,timestamp
的值作为日期对象
function myFunction() {
const ar = [{timestamp: 1617413162282, value: 1}, {timestamp: 1617413239904, value: 2}]; // Please set the values you want to put.
const sheetName = "Sheet1"; // Please set the sheet name of the sheet you want to put the values.
const values = ar.map(({timestamp, value}) => [new Date(timestamp), value]);
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
}
注:
- 我认为你的价值观也可以用其他语言表达。但我认为在这种情况下,当使用GoogleApps脚本时,过程可能会更简单
new Date(timestamp)。toLocaleString().replace(',','')
toLocaleString
创建特定于区域设置的输出。结果将因用户的文化/语言设置而异。对于输入电子表格的值,我不建议这样做。显示传递Date
对象,而不是字符串。谢谢,我想这会有用的。然而,当我试图在脚本编辑器中运行时,我得到了“出现未知错误,请稍后重试”。但这没关系,不需要调试,我的评论足以解决我的问题issue@mark谢谢你的回复。对于给您带来的不便和我糟糕的英语水平,我深表歉意。不幸的是,我无法从你的回复中了解你目前的情况。我能问一下你目前的情况吗?顺便说一下,我无法复制您的问题出现未知错误,请稍后再试。
。但是,当发生未知错误时,请稍后重试。当创建新的Google电子表格并在新的电子表格中使用我的脚本时,情况会发生变化吗?