我在许多电子表格的Google云端硬盘文件夹中运行了一个JavaScript函数,目前正在将日期记录到日志中;
function convertDates(){
var ui = SpreadsheetApp.getUi();
SpreadsheetApp.getActiveSpreadsheet().toast('Conversion Started With First Row Date Cells','Conversion', 5);
Logger.log('Date Conversion Started');
var activeCell = SpreadsheetApp.getActiveSpreadsheet().getActiveCell();
var cell = activeCell.getValue();
Logger.log(cell);
}
如何转换目前看起来像'cell'的输出:
May 03, 2014 at 05:19PM
进入Javascript中的Unix时间戳?我倾向于认为这可能涉及Date()函数,但我不确定。
提前感谢。
答案 0 :(得分:0)
您可以通过这种方式删除“at”,然后工作表会将该值识别为有效日期。
function convertDates(){
var sheet = SpreadsheetApp.getActiveSheet();
var range_input = sheet.getRange(1, 1);
range_input = range_input.getValue();
range_input = range_input.replace("at ", " ");
sheet.getRange(1, 1).setValue(range_input);
}
我只是替换一个单细胞。您可以将其循环到所有需要的单元格值。
希望有所帮助!
答案 1 :(得分:0)
如果你想获得自UNIX纪元(1970年1月1日)以来秒数的字符串表示,你可以使用这样的代码:
function convertDates(){
var ui = SpreadsheetApp.getUi();
SpreadsheetApp.getActiveSpreadsheet().toast('Conversion Started With First Row Date Cells','Conversion', 5);
Logger.log('Date Conversion Started');
var activeCell = SpreadsheetApp.getActiveSpreadsheet().getActiveCell();
var unixEpoch = new Date(1970,0,1,0,0,0).getTime();// difference between JS epoch and UNIX epoch in milliseconds
var cell = ((activeCell.getValue().getTime()-unixEpoch)/1000).toString();
Logger.log(cell);
activeCell.setValue(cell);// this will write it back to the sheet... be careful, it is not a date object anymore but a string... so the code won't work after that.
}
答案 2 :(得分:-1)
你必须删除" at"并在" 05:19"之后添加一个空格。
看起来像这样:
var date = new Date("May 03, 2014 05:19 PM");