[英]Apps Script to JSON Date Time Format Problem
我有一个 Google 表格,其中“A”列是日期时间列。 关联
我将此 Google 表格文件转换为 JSON 数据。 关联
从这个 JSON 数据中获取表格中的我的网站页面。 关联
日期的问题是它显示17/01/2023 19:47:35到2023-01-17T14:17:35.270Z我怎样才能使它可读
我的 Apps 脚本代码如下
function doGet(e) {
var sheet = SpreadsheetApp.getActive();
var nse = sheet.getSheetByName("Sheet1");
var data = [];
var rlen = nse.getLastRow();
var clen = nse.getLastColumn();
var rows = nse.getRange (1,1, rlen, clen).getValues();
for(var i = 1; i < rows.length; i++) {
var datarow = rows[i];
var record = {};
for(var j=0; j < clen ; j++){
record[rows[0][j]] = datarow[j];
}
data.push(record);
}
var result = JSON.stringify(data);
return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON);
}
我的 Javascript 代码在这里。
<section>
<h1>My Google Sheet Table</h1>
<!-- TABLE CONSTRUCTION-->
<table id='mytable'>
<!-- HEADING FORMATION -->
<tr>
<th>Date</th>
<th>Name</th>
<th>Phone Number</th>
<th>Months</th>
</tr>
<script>
$(document).ready(function () {
// FETCHING DATA FROM JSON FILE
$.getJSON("JsonDataLink",
function (data) {
var content = '';
// ITERATING THROUGH OBJECTS
$.each(data, function (key, value) {
//CONSTRUCTION OF ROWS HAVING
// DATA FROM JSON OBJECT
content += '<tr>';
content += '<td>' +
value.DATE + '</td>';
content += '<td>' +
value.Name + '</td>';
content += '<td>' +
value.Phone + '</td>';
content += '<td>' +
value.Months + '</td>';
content += '</tr>';
});
//INSERTING ROWS INTO TABLE
$('#mytable').append(content);
});
});
</script>
</section>
</body>
</html>
当我看到你提供的示例电子表格时,“DATE”的“A”列的值似乎是日期object。在这种情况下,如何修改它如下?
在此模式中,仅修改了 Google Apps 脚本。
重要的一点是,在您提供的示例电子表格中,有doGet
的 2 个函数。 在这种情况下,可能无法获得预期的结果。 因此,请删除 2 个doGet
函数中的一个,并按如下方式修改它。
function doGet(e) {
var sheet = SpreadsheetApp.getActive();
var nse = sheet.getSheetByName("Sheet1");
var data = [];
var rlen = nse.getLastRow();
var clen = nse.getLastColumn();
var rows = nse.getRange(1, 1, rlen, clen).getDisplayValues(); // Modified
for (var i = 1; i < rows.length; i++) {
var datarow = rows[i];
var record = {};
for (var j = 0; j < clen; j++) {
record[rows[0][j]] = datarow[j];
}
data.push(record);
}
var result = JSON.stringify(data);
return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON);
}
在此模式中,仅修改了 Google Apps 脚本。 在此修改中,格式化了getValues
检索到的日期 object。
record[rows[0][j]] = datarow[j];
record[rows[0][j]] = j == 0 ? Utilities.formatDate(datarow[j], Session.getScriptTimeZone(), "yyyy-MM-dd HH:mm") : datarow[j];
在此模式中,仅修改了 Javascript。 在这个修改中,使用了 moment.js 。 你可以通过 CDN 的https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js
看到它。
请修改您的Javascript如下。
content += '<td>' +
value.DATE + '</td>';
content += '<td>' +
moment(new Date(value.DATE)).format('YYYY-MM-DD HH:mm') + '</td>';
当您修改 Web Apps 的 Google Apps Script 时,请将 deployment 修改为新版本。 至此,修改后的脚本反映在Web Apps中。 请注意这一点。
您可以在我的报告“ 重新部署 Web 应用程序而不更改 URL 的 Web 应用程序的新 IDE(作者:我) ”中查看详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.