2013-08-26 4 views
13

나는이 시간대에 대한 정보없이 설정 시간대에 미리 서식이 지정된 시간을 보내는 백엔드가 있습니다. 문자열은 '2013-08-26 16:55:00'과 같습니다.moment.js를 사용하여 특정 시간대의 시간을 만드는 방법

나는이 문자열을 가진 새로운 moment.js 인스턴스를 만들 수 있습니다

var time = moment("2013-08-26 16:55:00") //this creates time in my tz 

그러나 이것은 단지 내 자신의 시간 영역에서 인스턴스를 생성합니다.

Moment.js에는 특정 시간대에있는 개체의 인스턴스를 만들 수있는 플러그인이 있습니다. 그러나이 플러그인은 훌륭하게 작동하지만, 개체가 가리키고 싶은 시간을 말할 수는 없습니다. 내가 뉴욕에 그리고 난 이렇게 할 경우

:

var time = moment("2013-08-26 16:55:00").tz("America/Los_Angeles"); 

결과 시간이 13시 55분 대신 16시 55분하지만 LA에있을 것입니다.

내가 원하는 것은 LA 시간에 16:55라고 말할 수있는 인스턴스를 만드는 것입니다.

나는이 작업을 수행 할 수 있기 때문에 내가 부탁 해요 이유는 다음과 같습니다

var now = moment.tz("America/Los_Angeles"); 
var end = moment("2013-08-26 16:55:00"); //plus something to convert LA time 

var timeLeft = end.diff(now, "minutes"); 

이 할 수있는 방법이 있나요?

답변

19

대부분의 경우, 당신은 단순히이 작업을 수행 할 수 있습니다

: 당신은 ISO8601 이외의 입력을 요구하는 경우, 두 번째 매개 변수로 형식 문자열, 세 번째로 시간대를 지정

moment.tz("2013-08-26 16:55:00", "America/Los_Angeles") 

moment.tz("8/26/2013 4:55 pm", "M/D/YYYY h:mm a", "America/Los_Angeles") 

그리고 당신은 순간의 "엄격한 해석"모드를 사용해야 할 경우, 그 세 번째 매개 변수에 가고, 시간대는 네 번째 위치로 이동 :

moment.tz("8/26/2013 4:55 pm", "M/D/YYYY h:mm a", true, "America/Los_Angeles") 
특정 시간대에 모든 것을 계산하려면
+0

방법을 특정 형식과 엄격한 해석뿐만 아니라 이용해야 할 경우 내가 그것을해야합니까? – Jan

+0

@Jan - 설명 할 답변을 업데이트했습니다. 감사. –

+0

@MattJohnson이 작품은 'America/New_York'에 대해 어떻게 전적으로 말합니까? 브라우저의 시간대를 캡처하는 것처럼 보입니다. – anm

1

당신은 그냥 설정)는 Node.js를 프로젝트

를 사용하여 기본 타임 존) 내 사용 사례를 들어 moment.tz.setDefault("America/Los_Angeles");

을 (설정하려면 그 후 사용하는 것과하지 않는 "미국/로스 엔젤레스"설정에서 시간을 만들 것입니다 moment()

let moment = require('moment'); 
require('moment-timezone'); 
moment.tz.setDefault("America/Los_Angeles"); 

모든 통화 : 그것은 바로 지금과 같은 순간 모듈을 필요로하는 후

이미 기본값을 변경하지 않는 한) (UTC 시간에 순간 개체를 만든 다음이 될로 변환 것 둘 다 B) moment.tz("2017-03-04 00:00", "America/Los_Angeles")

또는

C) moment("2017-03-04 00:00").tz("America/Los_Angeles")

로스 앤젤레스 타임 존.브라우저 콘솔 수익률 위의 B 또는 C를 실행

:

_d: Fri Mar 03 2017 16:00:00 GMT-0800 (PST) 
_i: "2017-3-4 00:00" 

공지 _d는 3월 3일 오후 4시 보여줍니다; 이것은 moment 객체가 UTC 시간으로 3 월 4 일 오전 12시에 생성 된 다음 전날보다 8 시간 늦은 태평양 시간대로 변환 되었기 때문입니다.

소스 : http://momentjs.com/timezone/docs/#/using-timezones/default-timezone/

관련 문제