0

我使用日期選擇器,它有日,月和年。但它沒有時間(秒,分和小時)。我已經在谷歌電子表格中插入了記錄。但是當我在日期記錄中專門搜索和檢索記錄時遇到了問題。從谷歌電子表格中檢索日期記錄

例如,如果日期爲谷歌電子表格中的3/25/2017。當我搜索記錄時,返回的日期值爲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); 
} 
+0

[This](http://stackoverflow.com/questions/948532/how-do-you-convert-a-javascript-date-to-utc)或類似的問答將幫助你。 –

+0

您的腳本和電子表格可能位於不同的時區。 –

回答

0

我想你可能有兩個問題,這真的不取決於代碼本身。因爲在谷歌表格中EPOC

  1. 的日期和時間字段實際存儲爲微秒。
  2. 當您設定的日期/時間格式,你需要確保你的谷歌表使用相同的時區區域設置信息作爲你的物理位置 - 如果它們是不同的,那麼你會得到令人困惑的結果。

當您僅保存日期或僅保存時間時,將爲缺失部分假定一些默認值。因此,如果您只保存日期,則時間部分將具有假定價值,並且它僅保存時間,然後日期部分將假定價值。這些假設值很大程度上取決於區域設置和時區設置。

請檢查這些是否影響你所看到的。