0

我已经搜索了几个小时,但我似乎无法对此进行适当的修复。

我有一个包含(除其他外)日期框的表单。在提交表单并检查日期框的值时,它以字符串的形式出现,而不是日期对象。

我需要使用一个表单,它需要使用提交按钮,因为我也有一个文件上传器(它依赖于这些)。

相关代码如下:

// Date Time Chooser
var dateLabel = app.createLabel('Date to Publish Article');
var dateBox = app.createDateBox().setName("date");
...
// Add a button to submit the info
var submitButton = app.createSubmitButton('Submit');
...
// Sort the date and time
var date = e.parameters.date;
Logger.log(date);
Logger.log(typeof(date));
date.setHours(e.parameter.timeHour, e.parameter.timeMin);

每当不使用表单并使用普通按钮时,它似乎可以作为日期对象传递,但使用表单和提交按钮,它是一个字符串。

任何帮助将不胜感激。

4

1 回答 1

0

e.parameter 返回确实总是一个字符串。

要将其转换为日期对象,您可以简单地重新创建这样的日期:

  var d = e.parameter.date.split('-');// separate day,month and year
  var dateDate = new Date(d[0],d[1]-1,d[2],0,0,0,0);// month count from 0 >> -1 on d[1]
  Logger.log(d+'  '+dateDate); // check result in the logger

  // returned value example = 2013-07-31  -> date object construction =  new Date(year, month, day, hours, minutes, seconds, milliseconds);

编辑:设置小时、分钟和秒你应该使用

date.setHours(Number(e.parameter.timeHour.replace(/[^0-9]/g,'')), Number(e.parameter.timeMin.replace(/[^0-9]/g,''))); // use numbers as arguments and eliminate all other characters eventually present (for example if you use "11 hours" instead of simply "11"
于 2013-07-11T23:09:21.010 回答