从 google 电子表格中检索日期记录
Retrieving the date record from google spreadsheet
我使用日期选择器,它有日、月,year.But它没有时间(秒、分和小时)。我已经在 google 电子表格中插入了记录。但是当我专门在日期记录中搜索和检索记录时,我遇到了问题。
例如,如果 google 电子表格中的日期是 2017 年 3 月 25 日。当我搜索记录时,日期值返回为 2017-03-24T15:00:00.000Z,其中一天减少了一天。
我该如何解决这个问题?
请帮忙。
代码
Html
<div id="Searchrecord">
<h2>Search </h2>
<form id="fsrecord">
<input type="text" name="sinvoice" id="sinvoice" placeholder="by invoice number"/> <br/>
<input type="text" name="surname" id="surname" placeholder="by your name"/> <br/>
<input type="text" name="scustomername" id="scustomername" placeholder="by customer name"/> <br/>
<input type="text" name="spayementdate" id="spayementdate" placeholder="by payment date"> <br>
<input type="submit" value="search" />
</form>
</div>
<div id="searchresult">
</div>
<script>
$( document ).ready(function() {
$("#spayementdate").datepicker();
$("#fsrecord").submit(function() {
google.script.run.withSuccessHandler(function(retsearch){
var response = JSON.parse(retsearch);
var newHTML=[];
newHTML.push('<table>' + '<tr>' +'<td>'+"Invoice"+'</td>'+
'<td>'+"Your Name"+'</td>'+
'<td>'+"Customer Name" +'</td>'+
'<td>'+"Email" + '</td>'+
'<td>'+"Project Name" + '</td>'+
'<td>'+"Amount of Money" + '</td>'+
'<td>'+"Payment Date" +'</td>'+
'<td>'+"Date Create" +'</td>'+
'<td>'+"Branch" +'</td>'+
'<td>'+ "File url" +'</td>'
+ '<tr>');
for(var i =0 ; i< response.length ; i++){
newHTML.push('<tr>' + '<td>'+ response[i].invoice + '</td>'
+ '<td>'+ response[i].yourname + '</td>'
+ '<td>'+ response[i].customername + '</td>'
+ '<td>'+ response[i].email + '</td>'
+ '<td>'+ response[i].projectname + '</td>'
+ '<td>'+ response[i].amountofmoney + '</td>'
+ '<td>'+ response[i].paymentday + '</td>'
+ '<td>'+ response[i].datecreate + '</td>'
+ '<td>'+ response[i].branch + '</td>'
+ '<td>'+ '<a href="' + response[i].file + '" target="_blank" >file!</a>' + '</td>'
+'</tr>');
}
newHTML.push('</table>');
$("#results").hide();
$("#searchresult").html(newHTML.join(""));
}).processSearch(this);
});
});
</script>
Code.cs
function getData() {
var ss=SpreadsheetApp.openById('1PWJyASHmjJ_W8-72u8bbrGbN-Nv6kdkCvjdmYuNNlEY');
var sheet=ss.getSheetByName('invoice1');
return sheet;
}
function processSearch(searchform){
var sheet = getData();
var data = ObjApp.rangeToObjects(sheet.getDataRange().getValues());
var searchinvoice=searchform.sinvoice;
var searchfname=searchform.surname;
var searchcname=searchform.scustomername;
var searchpayementdate=searchform.spayementdate;
var results = [];
var events;
for(var i=0 ; i < data.length ; i++) {
if(searchinvoice == data[i].invoice) {
events ={invoice:data[i].invoice,yourname:data[i].yourname, customername:data[i].customername,email:data[i].email,projectname:data[i].projectname,amountofmoney:data[i].amountofmoney,paymentday:data[i].paymentday,datecreate:data[i].datecreate,branch:data[i].branch,file:data[i].file };
results.push(events);
return JSON.stringify(results);
}
}
//Logger.log(results);
return JSON.stringify(results);
}
我认为您可能有两个问题,它们并不真正取决于代码本身。
- 日期和时间字段实际存储为 微秒,自 Google Sheet 中的 epoc 以来。
- 当您设置 date/time 格式时,您需要确保您的 Google Sheet 使用相同的 时区 和 Locale 信息作为您的物理位置 - 如果这些不同,那么您会得到令人困惑的结果。
当您只保存日期或时间时,系统会为缺失的部分采用一些默认值。因此,如果您仅保存日期,时间部分将具有假定值,而您仅保存时间,则日期部分将具有假定值。这些假定值在很大程度上取决于区域设置和时区设置。
请检查这些是否影响了您所看到的内容。
我使用日期选择器,它有日、月,year.But它没有时间(秒、分和小时)。我已经在 google 电子表格中插入了记录。但是当我专门在日期记录中搜索和检索记录时,我遇到了问题。
例如,如果 google 电子表格中的日期是 2017 年 3 月 25 日。当我搜索记录时,日期值返回为 2017-03-24T15:00:00.000Z,其中一天减少了一天。
我该如何解决这个问题?
请帮忙。
代码
Html
<div id="Searchrecord">
<h2>Search </h2>
<form id="fsrecord">
<input type="text" name="sinvoice" id="sinvoice" placeholder="by invoice number"/> <br/>
<input type="text" name="surname" id="surname" placeholder="by your name"/> <br/>
<input type="text" name="scustomername" id="scustomername" placeholder="by customer name"/> <br/>
<input type="text" name="spayementdate" id="spayementdate" placeholder="by payment date"> <br>
<input type="submit" value="search" />
</form>
</div>
<div id="searchresult">
</div>
<script>
$( document ).ready(function() {
$("#spayementdate").datepicker();
$("#fsrecord").submit(function() {
google.script.run.withSuccessHandler(function(retsearch){
var response = JSON.parse(retsearch);
var newHTML=[];
newHTML.push('<table>' + '<tr>' +'<td>'+"Invoice"+'</td>'+
'<td>'+"Your Name"+'</td>'+
'<td>'+"Customer Name" +'</td>'+
'<td>'+"Email" + '</td>'+
'<td>'+"Project Name" + '</td>'+
'<td>'+"Amount of Money" + '</td>'+
'<td>'+"Payment Date" +'</td>'+
'<td>'+"Date Create" +'</td>'+
'<td>'+"Branch" +'</td>'+
'<td>'+ "File url" +'</td>'
+ '<tr>');
for(var i =0 ; i< response.length ; i++){
newHTML.push('<tr>' + '<td>'+ response[i].invoice + '</td>'
+ '<td>'+ response[i].yourname + '</td>'
+ '<td>'+ response[i].customername + '</td>'
+ '<td>'+ response[i].email + '</td>'
+ '<td>'+ response[i].projectname + '</td>'
+ '<td>'+ response[i].amountofmoney + '</td>'
+ '<td>'+ response[i].paymentday + '</td>'
+ '<td>'+ response[i].datecreate + '</td>'
+ '<td>'+ response[i].branch + '</td>'
+ '<td>'+ '<a href="' + response[i].file + '" target="_blank" >file!</a>' + '</td>'
+'</tr>');
}
newHTML.push('</table>');
$("#results").hide();
$("#searchresult").html(newHTML.join(""));
}).processSearch(this);
});
});
</script>
Code.cs
function getData() {
var ss=SpreadsheetApp.openById('1PWJyASHmjJ_W8-72u8bbrGbN-Nv6kdkCvjdmYuNNlEY');
var sheet=ss.getSheetByName('invoice1');
return sheet;
}
function processSearch(searchform){
var sheet = getData();
var data = ObjApp.rangeToObjects(sheet.getDataRange().getValues());
var searchinvoice=searchform.sinvoice;
var searchfname=searchform.surname;
var searchcname=searchform.scustomername;
var searchpayementdate=searchform.spayementdate;
var results = [];
var events;
for(var i=0 ; i < data.length ; i++) {
if(searchinvoice == data[i].invoice) {
events ={invoice:data[i].invoice,yourname:data[i].yourname, customername:data[i].customername,email:data[i].email,projectname:data[i].projectname,amountofmoney:data[i].amountofmoney,paymentday:data[i].paymentday,datecreate:data[i].datecreate,branch:data[i].branch,file:data[i].file };
results.push(events);
return JSON.stringify(results);
}
}
//Logger.log(results);
return JSON.stringify(results);
}
我认为您可能有两个问题,它们并不真正取决于代码本身。
- 日期和时间字段实际存储为 微秒,自 Google Sheet 中的 epoc 以来。
- 当您设置 date/time 格式时,您需要确保您的 Google Sheet 使用相同的 时区 和 Locale 信息作为您的物理位置 - 如果这些不同,那么您会得到令人困惑的结果。
当您只保存日期或时间时,系统会为缺失的部分采用一些默认值。因此,如果您仅保存日期,时间部分将具有假定值,而您仅保存时间,则日期部分将具有假定值。这些假定值在很大程度上取决于区域设置和时区设置。
请检查这些是否影响了您所看到的内容。