0

나는 날짜 피커를 사용합니다. 일, 월, 연도가 있습니다. 그러나 시간 (초, 분 및 시간)이 없습니다. 이미 Google 스프레드 시트에 레코드를 삽입했습니다. 그러나 날짜 기록에서 레코드를 검색하고 검색 할 때 문제가 발생합니다.Google 스프레드 시트에서 날짜 기록 가져 오기

예를 들어 Google 스프레드 시트에서 날짜가 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) 또는 유사한 Q/As가 도움이 될 것입니다. –

+0

스크립트와 스프레드 시트가 다른 시간대에있을 수 있습니다. –

답변

0

난 당신이 정말 코드 자체에 의존하지 않는 두 가지 문제가있을 수 있습니다 생각합니다.

  1. 날짜와 시간 필드는 실제로 Google 시트의 EPOC 이후 마이크로로 저장됩니다. 당신이 날짜/시간 형식을 설정하면
  2. 당신은 귀하의 Google 시트가 실제 위치와 동일한 시간대로케일 정보를 사용하는지 확인해야 -이 다른 경우 다음 혼란 결과를 얻을 수 있습니다.

날짜 만 저장하거나 시간 만 저장하면 누락 된 부분에 대해 일부 기본값이 가정됩니다. 따라서 날짜 만 저장하면 시간 부분은 값을 갖게되고 시간 만 저장하면 날짜 부분은 값을 갖게됩니다. 이러한 가정 된 값은 로켈 및 표준 시간대 설정에 크게 의존합니다.

이것이 현재보고있는 것에 영향을 미치는지 확인하십시오.