제출시 Google 양식에서 값 가져 오기 및 시간 형식 지정

RachelW

Google 양식과 함께 Google Apps Script를 사용하고 있습니다. 사용자가 Google Form을 제출하면 질문에서 값을 얻습니다. 그런 다음이 값을 가져 와서 날짜 개체로 만듭니다. 일광 절약 에 대해이 게시물 에서 본 것에서 시간대를 결정하는 데 사용합니다. Utilities.formatDate를 통해 날짜 개체를 실행하고 올바른 형식의 날짜를 얻고 싶습니다.

예 : 9:00 AM

그러나 대신 예상과는 완전히 다른 시간을 얻고 있습니다.

내 질문은 : 누군가가 왜 아래 코드가 3 시간 다른 시간을 출력하는지 이해하도록 도울 수 있습니까?

function onSubmit(e) {

  var values = e.values;  
  Logger.log(values);

  try {    
    var start1 = new Date(values[3]);
    var startN = new Date(start1).toString().substr(25,6)+"00";
    var startT = Utilities.formatDate(start1, startN, "h:mm a");
    Logger.log(startT);

  } catch(error) {
    Logger.log(error);
  }
}
Serge insas

Utilities formatDate가 GMT ... 매개 변수를 지원하지 않는다는 가정은 사실이 아닙니다.

참고로 언급 한 게시물은 캘린더 이벤트를 가져 오는 데 사용되며 다른 일광 절약 기간 (캘린더 이벤트 자체에서 TZ 정보 가져 오기)에서 이벤트를 가져올 때 올바른 값을 얻는 유용한 방법입니다. 예를 들어 다음 달의 이벤트는 다음과 같습니다. 우리가 여전히 "겨울 시간"에있는 동안 "서머 타임"에 있습니다 ...

스크립트의 시간대 설정과 소스의 시간대에 따라 다른 소스에서 문제가 발생할 수 있습니다. 이 스크립트를 사용하는 정확한 구성을 설명 할 수 있습니까?

그동안 코드가 어떻게 작동하는지 + 로거 결과를 보여주는 작은 코드가 있습니다.

function testOnSubmit() {
  var eventInfo = {};
  var values = {};  
  values['3'] = new Date();
  eventInfo['values'] = values;
  Logger.log('eventInfo = '+JSON.stringify(eventInfo)+'\n\n');
  onSubmit(eventInfo);
}

function onSubmit(e) {
  var values = e.values;  
  try {    
    var start1 = new Date(values[3]);
    Logger.log('onSubmit log results : \n');
    Logger.log('start1 = '+start1)
    var startN = new Date(start1).toString().substr(25,6)+"00";
    Logger.log('startN = '+startN);
    var startT = Utilities.formatDate(start1, startN, "h:mm a");
    Logger.log('result in timeZone = '+startT);
  } catch(error) {
    Logger.log(error);
  }
}

여기에 이미지 설명 입력

편집 : 추가로, 약 30 및 45 '오프셋, 이것은 다음과 같이 하위 문자열 길이를 변경하여 쉽게 해결할 수 있습니다.

var startN = new Date(start1).toString().substr(25,8);

결과는 동일합니다. 몇 년 전에 Google이 Utilities.formatDate 메서드를 잠시 변경했기 때문에 ( 문제 2204 ) 다른 버전을 사용해야 했지만이 문제가 해결 되었습니다.

편집 2 : 동일한 주제에 대해 두 방법 모두 실제로 동일한 결과를 반환하며 GMT 문자열은 정확한 시간대 이름을 알 필요가 없다는 장점 만 있습니다. Session.getScriptTimeZone()방법도 있습니다. 다음은 로그 결과와 함께 1 월과 7 월의 2 개 날짜에 대한 결과를 보여주는 데모 스크립트입니다.

function testOnSubmit() {
  var eventInfo = {};
  var values = {};  
  values['3'] = new Date(2014,0,1,8,0,0,0);
  eventInfo['values'] = values;
  Logger.log('eventInfo = '+JSON.stringify(eventInfo)+'\n\n');
  onSubmit(eventInfo);
  values['3'] = new Date(2014,6,1,8,0,0,0);
  eventInfo['values'] = values;
  Logger.log('eventInfo = '+JSON.stringify(eventInfo)+'\n');
  onSubmit(eventInfo);
}

function onSubmit(e) {
  var values = e.values;  
  var start1 = new Date(values[3]);
  Logger.log('onSubmit log results : ');
  Logger.log('start1 = '+start1)
  var startN = new Date(start1).toString().substr(25,8);
  Logger.log('startN = '+startN);
  Logger.log('result in timeZone using GMT string = '+Utilities.formatDate(start1, startN, "MMM,d  h:mm a"));
  Logger.log('result in timeZone using Joda.org string = '+Utilities.formatDate(start1, 'Europe/Brussels', "MMM,d  h:mm a"));
  Logger.log('result in timeZone using Session.getScriptTimeZone() = '+Utilities.formatDate(start1, Session.getScriptTimeZone(), "MMM,d  h:mm a")+'\n');
}

여기에 이미지 설명 입력

또한 Logger에는 날짜 개체 값을 표시하는 자체 방법이 있습니다! UTC 값인 ISO 8601 시간 형식을 사용합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

날짜 형식 및 지난 24 시간 결과 양식 가져 오기

분류에서Dev

React : 제출시 자식 구성 요소에서 양식 값 가져 오기

분류에서Dev

양식 제출시 선택 메뉴에서 선택한 값 가져 오기

분류에서Dev

HTML 양식 및 양식 제출시 Javascript 배열에서 데이터 가져 오기

분류에서Dev

양식 제출시 배열로 값 가져 오기

분류에서Dev

CURL : 양식 게시 및 bash에서 데이터 가져 오기

분류에서Dev

Wordpress에서 양식 및 가져 오기 / 게시 사용

분류에서Dev

DataGridViewComboBoxColumn에서 사용자 지정 형식 다시 가져 오기

분류에서Dev

순간 js에서 특정 형식으로 날짜 시간 가져 오기

분류에서Dev

Google 시트에서 배열 수식을 사용하여 다른 행 및 열에서 값 가져 오기

분류에서Dev

R의 특정 날짜 양식 목록에서 시간 가져 오기

분류에서Dev

Yii jQuery 모델 값 가져 오기 및 양식 제출

분류에서Dev

날짜 및 시간 양식 postgresql 가져 오기

분류에서Dev

문장 자바에서 날짜, 시간 및 정수 값 가져 오기

분류에서Dev

Clojure의 특정 형식으로 날짜 및 시간을 가져 오기 위해 문자열 구문 분석

분류에서Dev

제출시 가져온 양식 구성 요소의 값 읽기 (상태에 저장하지 않음)

분류에서Dev

Google 양식의 드롭 다운에서 값 가져 오기

분류에서Dev

Google Script : 입력 양식에서 값 가져 오기

분류에서Dev

자바 정규식, 문자열에서 시간 가져 오기

분류에서Dev

정의 된 날짜-시간 형식으로 주어진 시간 사이의 오늘 값을 가져옵니다.

분류에서Dev

Android의 Google에서 현재 날짜 및 시간 가져 오기

분류에서Dev

localstorage를 사용하여 양식에서 데이터 게시 및 가져 오기

분류에서Dev

Suitescript-판매 주문 양식에서 배송비 가져 오기 및 표시

분류에서Dev

Google 스프레드 시트 + 앱 : 열의 최대 값 가져 오기, 날짜 형식 제공

분류에서Dev

양식에서 성공 및 오류 메시지 숨기기

분류에서Dev

입력 유형 = 양식에서 이미지 이름 및 경로 가져 오기

분류에서Dev

버튼에서 나오면 값을 다시 제출하지 않는 양식

분류에서Dev

양식 데이터 가져 오기 및 URL에 게시

분류에서Dev

지난 1 시간 및 현재 1 시간 동안 MySQL 테이블에 삽입 된 값 가져 오기

Related 관련 기사

  1. 1

    날짜 형식 및 지난 24 시간 결과 양식 가져 오기

  2. 2

    React : 제출시 자식 구성 요소에서 양식 값 가져 오기

  3. 3

    양식 제출시 선택 메뉴에서 선택한 값 가져 오기

  4. 4

    HTML 양식 및 양식 제출시 Javascript 배열에서 데이터 가져 오기

  5. 5

    양식 제출시 배열로 값 가져 오기

  6. 6

    CURL : 양식 게시 및 bash에서 데이터 가져 오기

  7. 7

    Wordpress에서 양식 및 가져 오기 / 게시 사용

  8. 8

    DataGridViewComboBoxColumn에서 사용자 지정 형식 다시 가져 오기

  9. 9

    순간 js에서 특정 형식으로 날짜 시간 가져 오기

  10. 10

    Google 시트에서 배열 수식을 사용하여 다른 행 및 열에서 값 가져 오기

  11. 11

    R의 특정 날짜 양식 목록에서 시간 가져 오기

  12. 12

    Yii jQuery 모델 값 가져 오기 및 양식 제출

  13. 13

    날짜 및 시간 양식 postgresql 가져 오기

  14. 14

    문장 자바에서 날짜, 시간 및 정수 값 가져 오기

  15. 15

    Clojure의 특정 형식으로 날짜 및 시간을 가져 오기 위해 문자열 구문 분석

  16. 16

    제출시 가져온 양식 구성 요소의 값 읽기 (상태에 저장하지 않음)

  17. 17

    Google 양식의 드롭 다운에서 값 가져 오기

  18. 18

    Google Script : 입력 양식에서 값 가져 오기

  19. 19

    자바 정규식, 문자열에서 시간 가져 오기

  20. 20

    정의 된 날짜-시간 형식으로 주어진 시간 사이의 오늘 값을 가져옵니다.

  21. 21

    Android의 Google에서 현재 날짜 및 시간 가져 오기

  22. 22

    localstorage를 사용하여 양식에서 데이터 게시 및 가져 오기

  23. 23

    Suitescript-판매 주문 양식에서 배송비 가져 오기 및 표시

  24. 24

    Google 스프레드 시트 + 앱 : 열의 최대 값 가져 오기, 날짜 형식 제공

  25. 25

    양식에서 성공 및 오류 메시지 숨기기

  26. 26

    입력 유형 = 양식에서 이미지 이름 및 경로 가져 오기

  27. 27

    버튼에서 나오면 값을 다시 제출하지 않는 양식

  28. 28

    양식 데이터 가져 오기 및 URL에 게시

  29. 29

    지난 1 시간 및 현재 1 시간 동안 MySQL 테이블에 삽입 된 값 가져 오기

뜨겁다태그

보관