2016-12-21 4 views
0

날짜가 나열된 스프레드 시트가 있습니다.날짜의 셀이 ntp 시간을 반환합니다. Google Apps 스크립트

나는 값 얻기 위하여이 코드를 사용하는 경우 :

[42370 ","42371 ","42372 ",":이에 getValues의 결과는()

function run() { 
var ss = SpreadsheetApp.getActive().getSheetByName("Planning Template"); 
var values = ss.getRange("G3:ADS3").getValues(); 
var value = ss.getRange("A1").getValue(); 
var date = new Date (value); 

    for(var column in values[0]){ 
    var test = values[0][column]; 
    if(test == value){ 
    var i = column; 
    } 
}} 

이다 42373 "", 42380 "", 42381 ","42382 ","42373 ","42373 ","423741 " , 42383, "", 42384 ""42385 ""42386 ""42387 ...

그리고 getValue()의 결과입니다. Sun Jan 01 2017 00:00:00 GMT +0100 (CET)

왜 스프레드 시트가 ntp 시간을 반환하는지 이해가되지 않습니다.

편집 : 그 값은 일반적으로 내가 getValue를 호출 할 때 나는이 값을 얻는다.하지만이 값은 42373이다. 형식화되었지만 값은 여전히 ​​형식화 된 숫자가되는 이유는 무엇인가? enter image description here 내가 표시된 값은 getDisplayValue를 호출 할 때 3을 얻습니다. enter image description here

+0

스프레드 시트의 날짜 열을 같은 날짜 형식으로 포맷 했습니까? 일관성을 위해 https://developers.google.com/apps-script/reference/utilities/utilities#formatDate(Date,String,String) 여기에있는 formatDate를 사용할 수도 있습니다. – utphx

+0

나는 그것을 시도했지만 formatDate를 사용할 때 날짜가 유효하지 않다고 말합니다. 그 이유는 ntp가 1900 년에 유닉스가 1970 년에 시작했기 때문이라고 생각합니다. Formatdate는 새로운 날짜를 입력으로 사용하지만 새 날짜 캔트는 4370 값으로 날짜를 만듭니다. – Taaut

+0

스프레드 시트 사본을 공유 할 수 있습니까? – utphx

답변

1

방법 getValuegetValuemay return "숫자, 부울, 날짜, 또는 문자열이 셀의 값에 따라 달라집니다." 특히, 셀을 숫자로 지정하면

  • 이 숫자로 표시됩니다.
  • 셀이 날짜, 날짜, 시간 또는 기간으로 포맷 된 경우 JavaScript 날짜 객체 (예 : 시간 값 3:00 pm은 JS datetime이되고 날짜 부분은 1899 년 12 월 30 일임)
  • 콘텐츠가 경우

, 당신이 있는지 확인해야 TRUE 또는 FALSE 인 경우 (셀이 비어있는 경우 빈 문자열) 함량이 일반 텍스트 인 경우

  • 문자열
  • 부울 당신이이 비교되는 열 같은 형식의 서식을 사용하여 원하는 날짜 서식을 지정할 수 있습니다.

  • +0

    나는 그것을 알고 있지만 Google 앱 스크립트로 셀의 값을 형식화 할 수 있으므로 둘 다 같은 형식을 가질 수 있다고 생각합니다. – Taaut

    +0

    setFormat 메서드를 사용하여 셀을 직접 포맷 할 수 있습니다. 스프레드 시트 형식에서 자바 스크립트 날짜로 시간을 수동으로 변환하는 것은 권장되지 않습니다. 스프레드 시트는 해당되는 경우 일광 절약 시간제를 사용하여 현지 시간을 사용합니다. 재 계산은 재미 있지 않을 것입니다. – FTP