表日期列格式与谷歌应用程序脚本html服务

时间:2016-11-08 13:19:44

标签: javascript google-apps-script google-sheets

我在查找基本表格式时遇到问题。我希望有人能看到我所拥有的,并提出一种改变结果的方法。我的Google电子表格包含2列'数字'和'日期'。

我的CodeGS看起来像

function doGet() {
  return HtmlService
      .createTemplateFromFile('Index')
      .evaluate();
}

function getData() {
  return SpreadsheetApp
      .openById('1111111111111111111111')
      .getActiveSheet()
      .getDataRange()
      .getValues();

} 

我的Index.html

<? var data = getData(); ?>
<!DOCTYPE html>
<html>
<Style>
 body {
    font-family: arial;
  }

  table {
    border: 1px solid #ccc;
    width: 100%;
    margin:0;
    padding:0;
    border-collapse: collapse;
    border-spacing: 0;
  }

  table tr {
    border: 1px solid #ddd;
    padding: 5px;
  }

  table th, table td {
    padding: 10px;
    text-align: left;
  }

  table th {
    text-transform: uppercase;
    font-size: 14px;
    letter-spacing: 1px;
  }
  </Style>
  <head>
  </head>
  <body>
<table>
   <thead>
    <tr>
      <th>Number</th>
      <th>Date</th>
    </tr>
  </thead>     
     <? for (var i = 1; i < data.length; i++) { ?>
        <tr>
          <? for (var j = 0; j < data[i].length; j++) { ?>
            <td><?= data[i][j] ?></td>
          <? } ?>
        </tr>
      <? } ?>

</table>

  </body>
</html>

执行时,日期列显示的值如“2016年12月5日星期一00:00:00 GMT-0600(CST)&#39;

在电子表格中,我希望看到的内容类似于&#39; 12/5/2016&#39;

我希望有人能告诉我如何完成这项工作

此致

克里斯

1 个答案:

答案 0 :(得分:0)

这绝不是一个优雅的解决方案,但要完全控制显示的日期格式,我使用以下内容:

var dateStr = 'Mon Dec 05 2016 00:00:00 GMT-0600 (CST)';

function pad(n){
  var pad = "";  
  if(n < 10){pad = "0" + n}else{pad = n};  
  return pad;
}

function shortDate(dateString){

  var d = new Date(dateString);

  var curr_date = d.getDate();
  var curr_month = d.getMonth() + 1;//zero indexed
  var curr_year = d.getFullYear();

  var shortDate = pad(curr_date) + "/" + pad(curr_month) + "/" + curr_year;

  return shortDate;

 }

 console.log(shortDate(dateStr));

此代码将输出英国格式日期,您将要切换打击垫(curr_date)和打击垫(curr_month)。

这意味着您必须编写一个表生成函数来替换当前生成表的方式,因为您需要独立处理日期值。