2012-03-11 2 views
1

Google Apps 스크립트를 처음 사용하고 있으며 UiApp 양식에서 날짜 문자열을 구문 분석하는 데 문제가 있습니다. 이 경우 사용자가 지정된 날짜 범위 내에서 타임 스탬프가 지정된 스프레드 시트를 필터링 할 수 있도록 스크립트를 작성하고 있습니다.google apps 스크립트를 사용하여 날짜 문자열 구문 분석하기

내 문제는 기존에 (라는 텍스트 상자 dateFromField에서) 날짜 문자열을 통과 할 때 아래 코드는 잘못된 날짜 객체를 반환한다는 것입니다 자바 스크립트 형식 YYYY,M,D (즉, 년 2 월 2 2012,1,2, 2012) :

function dateFilter(e) { 
    var fromDate = new Date(e.parameter.dateFromField); 
} 

나는 e.parameter.dateFromField이 주어진 문자열 (이 2012,1,2을 반환 함)을 올바르게 반환하고 유형이 객체가 아닌 문자열임을 확인했습니다. 내가 직접 기능, 즉 :

function dateFilter(e) { 
    var fromDate = new Date(2012,1,2); 
} 

에 날짜 문자열을 입력하면

그러나, 나는 날짜 객체를 유효한 얻는다. 나는이 두 예제의 차이점을 이해하지 못한다. 두 경우 모두 문자열 2012,1,2new Date 함수로 전달됩니다. 나는 분명히 간단한 것을 놓치고있다 - 누군가가 내게 무엇을 말할 수 있는가?

답변

5

수동으로 입력하면 실제로 쉼표로 구분 된 숫자 목록이 아닌 3 개의 숫자 매개 변수를 전달합니다.

전달하기 전에 매개 변수를 분할 할 수 있습니다.

var dateParts = e.parameter.dataFromField.split(','); 
var fromDate = new Date(dateParts[0], dateParts[1], dateParts[2]); 
+0

나는 간단한 것을 놓친다는 것을 알았지 만, 그것은 당혹 스럽다. 제게와 주셔서 감사합니다. 당신의 솔루션은 아름답게 작동했습니다. – Nick

2

텍스트 상자 대신 UiApp에서 DateBox 및 DatePicker 클래스를 사용하는 것이 좋습니다. 실제 날짜 객체를 반환하므로 구문 분석의 필요성이 전혀 없습니다. 그것들은 Apps Script 문서에 추가되었습니다. here을 참조하십시오.

+0

그래서 그들은 가지고 있습니다! 그것들을 사용하면 확실하게 일을 더 쉽게 할 수 있습니다. – Nick

+0

하지만 현재 사용 중지 되었습니까? –

관련 문제