如何在google应用程序脚本中使用javascript从google电子表格数据库获取日期值

如何在google应用程序脚本中使用javascript从google电子表格数据库获取日期值,javascript,google-apps-script,Javascript,Google Apps Script,我有一个问题,为什么当我在谷歌电子表格数据库的记录中输入日期时,它什么也没有显示。我不知道为什么,但是当我删除日期时,它会显示出来。我认为javascript不能从google电子表格中读取日期?我尝试使用newdate(),但仍然不起作用。请帮我做这个。而且当我像这样 <? var data = getData(); ?> <table id="tableShift2"> <caption>Team unknown</c

我有一个问题,为什么当我在谷歌电子表格数据库的记录中输入日期时,它什么也没有显示。我不知道为什么,但是当我删除日期时,它会显示出来。我认为javascript不能从google电子表格中读取日期?我尝试使用
newdate()
,但仍然不起作用。请帮我做这个。而且当我像这样

<? var data = getData(); ?>
        <table id="tableShift2">
        <caption>Team unknown</caption>
          <th>   Date and Time Plotted   </th>
          <th>   LDAP   </th>
          <th>   Date of VL   </th>
          <th>   HD/WD   </th>
          <th>   Action   </th>
          <? for (var q = 1; q < data.length; q++) {?>
          <tr>
            <td><?=data[q][1];?></td>
          </tr>
          <?}?>
        </table>
Index.html

    <html>
  <head>
    <base target="_top">

  </head>

  <body>
  <? var data = getData(); ?>
  <div id="Options">
    <label><b>Month</b></label>
    <select id="selectMonth">
      <option value="0">-Select Month-</option>
      <option value="1">January</option>       
      <option value="2">February</option>       
      <option value="3">March</option>       
      <option value="4">April</option>       
      <option value="5">May</option>       
      <option value="6">June</option>       
      <option value="7">July</option>       
      <option value="8">August</option>       
      <option value="9">September</option>       
      <option value="10">October</option>       
      <option value="11">November</option>       
      <option value="12">December</option>
    </select> - 
  <input type="radio" name="radioYear" id="radioYear" value="<?= new Date().getYear(); ?>"> <?= new Date().getYear(); ?>
  <input type="radio" name="radioYear" id="radioYear2" value="<?= new Date().getYear()+1; ?>"> <?= new Date().getYear()+1; ?>
  <button id="btnFetch" onclick="google.script.run.withSuccessHandler(fetchRecord).getData()">Fetch</button>
  </div>
  <div  id="tables">
        <table id="tableShift2">
        <caption>Team unknown</caption>
          <th>   Date and Time Plotted   </th>
          <th>   Name   </th>
          <th>   Date of VL   </th>
          <th>   HD/WD   </th>
          <th>   Action   </th>
        </table>
  </div>
  <div id="date"></div>

  <script
src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script>
$(function() {
  google.script.run.withSuccessHandler(showData)
      .getData();
});

function showData(things) {
  var table = $('#tableShift2');
  for (var i = 0; i < things.length; i++) {
    if (things[i][6] == '') {
    table.append('<tr> <td>' + things[i][1] + 
                 '</td> <td>' + things[i][2] +
                 '</td> <td>' + things[i][3] +
                 '</td> <td>' + things[i][4] +
                 '</td> <td ><button onclick=\'ApproveAndRefresh("' + things[i][0] + '","' + things[i][2] +
                 '")\' id="btnApprove">Approve</button> <button onclick=\'DeclineAndRefresh("' + things[i][0] + '","' + things[i][2] + 
                 '")\' id="btnDecline">Decline</button></td></tr>');
    }
  }
}
function ApproveAndRefresh(data, data1){
  google.script.run
  .withSuccessHandler(refreshData)
  .setApproved(data, data1);
}

function DeclineAndRefresh(data, data1){
  google.script.run
  .withSuccessHandler(refreshData)
  .setDeclined(data, data1);
}

function refreshData(hl){
   document.open();
   document.write(hl);
   document.close();
}

</script>
  </body>
</html>

月
-选择月份-
一月
二月
前进
四月
也许
六月
七月
八月
九月
十月
十一月
十二月
- 

因此,从
.getData()
返回的数据是一个对象。谷歌应用程序脚本的
Google.Script.run
不支持该功能。你可以

return JSON.stringify(SpreadsheetApp.openById('17lKIhONfEeNogsBhKtGr4zVaLgH0_199-3J3-0tAdcE')
  .getActiveSheet()
  .getDataRange()
  .getValues()) 
在脚本中,然后在SuccessHandler中:

function showData(things) {
  things = JSON.parse(things)
  //rest of your code...
}

你能添加一些错误信息吗?检查浏览器控制台和脚本窗口>视图>执行日志
未捕获错误:脚本已完成,但返回值不是受支持的返回类型。
这是什么意思?如何操作?我是否需要更改为
函数getData(){return JSON.stringify(SpreadsheetApp.openById('17lkihonfeenognogsbhktgr4zvalgh0_199-3J3-0tAdcE')。getActiveSheet().getDataRange().getValues())}
?我不知道怎么写,这是你的代码。你把这些值变成一个字符串,然后一旦它回到SuccessHandler中,你就把它解析回数组对象。它工作了!谢谢你的帮助。但是我如何定制它的时间和日期呢?有格式吗?它显示如下
2018-10-10T07:00:00.000Z
。我只需要没有¨T和Z¨的日期和时间。这里有一篇关于。请注意,您可能必须将包含日期的变量转换为日期对象:
var time=new date(things[?][?]);time.getDay()/…等
谢谢@Chris W。你帮了大忙。
function showData(things) {
  things = JSON.parse(things)
  //rest of your code...
}