[javascript] Moment.js 날짜를 사용자 현지 시간대로 변환하는 방법은 무엇입니까?

Moment.js 및 Moment-Timezone 프레임 워크를 사용하고 UTC 시간대로 명시 적으로 표시되는 Moment.js 날짜 개체가 있습니다. 브라우저의 현재 시간대로 어떻게 변환 할 수 있습니까?

var testDateUtc = moment.tz("2015-01-30 10:00:00", "UTC");
var localDate = ???

따라서 사용자의 현지 시간대를 알 수 있다면 괜찮을 것입니다. 또는 실제로 날짜에 관계없이 “현지 시간대”를 사용하는 다른 데이터 개체로 날짜 개체를 변환하고 싶습니다.



답변

이를 위해 순간 시간대를 사용할 필요가 없습니다. 주요 moment.js 라이브러리에는 UTC 및 현지 시간대 작업을위한 모든 기능이 있습니다.

var testDateUtc = moment.utc("2015-01-30 10:00:00");
var localDate = moment(testDateUtc).local();

여기에서 기대할 수있는 모든 기능을 사용할 수 있습니다.

var s = localDate.format("YYYY-MM-DD HH:mm:ss");
var d = localDate.toDate();
// etc...

전달하여 유의 testDateUtcA는 어떤 moment개체는 다시 moment()생성자, 그것이 생성 클론 . 그렇지 않으면를 호출 .local()하면 testDateUtc값 대신 값 도 변경 됩니다 localDate. 순간은 변경 가능 합니다.

또한 원래의 입력이 포함 된 경우 시간대는 오프셋 (offset) 참고 +00:00또는 Z, 당신은 단지와 직접 구문 분석 할 수 있습니다 moment. .utc또는 을 사용할 필요가 없습니다 .local. 예를 들면 :

var localDate = moment("2015-01-30T10:00:00Z");


답변

var dateFormat = 'YYYY-DD-MM HH:mm:ss';
var testDateUtc = moment.utc('2015-01-30 10:00:00');
var localDate = testDateUtc.local();
console.log(localDate.format(dateFormat)); // 2015-30-01 02:00:00
  1. 날짜 형식을 정의하십시오.
  2. moment 객체를 만들고 객체에서 UTC 플래그를 true로 설정합니다.
  3. 원래 모멘트 객체에서 변환 된 현지화 된 모멘트 객체를 만듭니다.
  4. 현지화 된 순간 객체에서 형식화 된 문자열을 반환합니다.

참조 : http://momentjs.com/docs/#/manipulating/local/


답변

내가 한 일은 다음과 같습니다.

var timestamp = moment.unix({{ time }});
var utcOffset = moment().utcOffset();
var local_time = timestamp.add(utcOffset, "minutes");
var dateString = local_time.fromNow();

{{ time }}utc 타임 스탬프는 어디에 있습니까 ?


답변

utcOffset 함수를 사용하십시오.

var testDateUtc = moment.utc("2015-01-30 10:00:00");
var localDate = moment(testDateUtc).utcOffset(10 * 60); //set timezone offset in minutes
console.log(localDate.format()); //2015-01-30T20:00:00+10:00


답변