2012-11-17 2 views
0

Google 기록을 위해 사용하는 스프레드 시트가 있습니다. 시트에서 날짜 열을 배열로 읽어 들여 작업/계산을 수행 할 수 있습니다. 디버거에서 날짜를 보유하는 배열의 값이 다른 형식의 날짜 값을 가지고 있음을 알았 기 때문에 이것은 작동하지 않았습니다. 예를 들어, 일부는 '16/11/2012'로 표시되고 일부는 (new Date(1355184000000))로 표시됩니다.날짜 형식 간의 변환

다른 사람들이 모두 통일 된 형식으로 변환하여 내가 그들과 함께 작업 할 수 있다고 지적 할 수 있습니까?

감사합니다.

+0

죄송합니다 반환, 내가 대답에 내 이전 코멘트를 변환하면 쉽게 포맷 할 수 있습니다. 그것을 삭제했다. –

답변

1

어떻게 날짜를 표시 하시겠습니까? 당신은 그것들을 '날짜 객체'또는 문자열로 만들고 싶습니까? 당신은 당신의 코드에 표시 값 (새 날짜 (1355184000000))는 Mon Dec 10 16:00:00 PST 2012 에 당신은 반대로 "16/11/2012"Logger.log(new Date(1355184000000))

를 사용하여 대부분의 아마 날짜하지만 문자열 ... (주 아니라는 것을 확인할 수 있습니다 대응 : 이상한 당신이 영국에있는 당신의 프로필을 보았을 때부터 "일/월/년"순서를 사용한다고 생각하면, mm/dd/yyyy를 대신 사용하리라고 생각했습니다.).

당신이이 항목들에 대해 약간의 계산을해야한다고 말했기 때문에, 그것들은 모두 스크립트에서 사용하기 위해 날짜 객체로 변환되어야한다고 생각합니다. some documentation on date object에서 오류를 생성하지 않고 수행하는 방법을 정확하게 확인하는 것이 좋습니다. 자바 스크립트의 날짜는 항상 이고 시간은이고 hh : mm : ss 및 밀리 초입니다. 당신이 본 정수 값은 1970 년 1 월 이후의 밀리 세컨드 수입니다 .-)
또한 search on dates in this forum을 수행하고 꽤 많은 interresting 정보를 찾을 수 있습니다.

function playWithTime(){ 
Logger.log('ref date = '+new Date(0)) 
var example = "june 30, 2013 23:59:00" 
Logger.log(example+' = '+ new Date("june 30, 2013 23:59:00")) 
Logger.log(example+' = '+ new Date("june 30, 2013 23:59:00").getTime()+' mS') 
} 

그것은 로거이 표시됩니다 : BTW

ref date = Thu Jan 01 1970 01:00:00 GMT+0100 (CET) 
june 30, 2013 23:59:00 = Sun Jun 30 2013 23:59:00 GMT+0200 (CEST) 
june 30, 2013 23:59:00 = 1372629540000 mS 

, 로거는 일광에 따라 다른 방법으로 값을 반환 있습니다 여기에

는 설명하기 위해 작은 기능입니다 시간대 절약 ... 저는 벨기에에 있고 6 월은 '여름'시간 (CEST)입니다. Google 서버의 시간대 인 PDT 또는 PST로 표시 될 수도 있습니다. 당신은 일정하게 로거에 의존 할 수 없다 (!)하지만 그건 또 다른 이야기이다 ;-)


편집 : 당신의 날짜 문자열은 다음 양식 일/월/년의 경우 당신은 아마해야 이 코드에서처럼 순서 :

function playWithTime2(){ 
Logger.log('original date string in UK format = 16/11/2012') 
var d = "16/11/2012".split('/'); 
var d_ordered=d[1]+'/'+d[0]+'/'+d[2] 
Logger.log('becomes '+d_ordered+' = '+new Date(d_ordered)) 
} 

original date string in UK format = 16/11/2012 
becomes 11/16/2012 = Fri Nov 16 2012 00:00:00 GMT+0100 (CET) 
+0

세심하고 자세하게 답변 해 주셔서 감사합니다. 이제는 이해 했으므로 시트의 모든 텍스트 날짜 값을 날짜 개체로 변환하려고합니다. 이 코드를 시트에 적용하기 전에 배열의 값을 변환하려고했지만 실패 할 것 같습니다. (var i = 0; i jad

+0

죄송합니다. 영국 날짜 형식에 대해 몰랐습니다! 다행히 우리가 공통적으로 가지고있는 것을 듣고 싶다 ;-) 나는 내 대답을 편집하고 날짜를 문자열로 변환하는 것을 제안했다. –

+0

다시 한 번 도움을 주셔서 대단히 감사합니다. Serge :) 나는 그들을 날짜 개체로 변환하고 대신에 배열의 위치에서 필요한 간단한 계산. – jad