momentjs를 사용하여 날짜를 epoch로 변환 한 다음 다시 날짜로 변환
날짜 문자열을 epoch로 변환 한 다음 epoch를 날짜 문자열로 다시 변환하여 올바른 날짜 문자열을 제공하고 있는지 확인하려고합니다.
var epoch = moment("10/15/2014 9:00").unix(); // do I need to do .local()?
var momentDate = moment(epoch); // I've also tried moment.utc(epoch)
var momentDateStr = momentDate.calendar();
alert("Values are: epoch = " + epoch + ", momentDateStr = " + momentDateStr);
렌더링
Values are: epoch = 1413378000, momentDateStr = 01/17/1970
참고 : 다음 버전의 moment js 스크립트를 사용하고 있습니다. //cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.3/moment-with-locales.js
여기에 몇 가지 잘못된 점이 있습니다.
첫째, 용어입니다. "에포크" 는 무언가의 시작점을 의미합니다. "Unix Epoch"는 1970 년 1 월 1 일 자정 (UTC)입니다. 임의의 "날짜 문자열을 epoch로"변환 할 수 없습니다. 아마도 "유닉스 타임"을 의미했을 것인데 , 종종 "에포크 타임"이라고 잘못 부르기도합니다.
.unix()
전체 초 단위의 Unix 시간을 반환하지만 기본moment
생성자는 밀리 초 단위 의 타임 스탬프를 허용합니다 . 대신.valueOf()
밀리 초를 반환 하는 데 사용해야 합니다. 호출.unix()*1000
도 작동하지만 정밀도가 떨어질 수 있습니다.형식 지정자를 제공하지 않고 문자열을 구문 분석합니다. 2014 년 1 월 1 일과 같은 값은 코드가 실행되는 로케일에 따라 2 월 1 일 또는 1 월 2 일로 해석 될 수 있으므로 이는 좋은 생각이 아닙니다. (이것이 콘솔에 지원 중단 경고가 표시되는 이유이기도합니다.) 대신 다음 과 같이 예상 입력과 일치 하는 형식 문자열 을 제공하십시오 .
moment("10/15/2014 9:00", "M/D/YYYY H:mm")
.calendar()
매우 특정한 용도가 있습니다. 날짜가 가까워지면 "Today 9:00 AM"과 같은 값이 반환됩니다. 예상 한 결과가 아니라면.format()
대신 함수를 사용해야합니다 . 다시 말하지만, 형식 지정자를 전달할 수 있습니다.의견에 대한 질문에 대답하려면 아니요 .
.local()
또는 으로 전화 할 필요가 없습니다.utc()
.
함께 모아서:
var ts = moment("10/15/2014 9:00", "M/D/YYYY H:mm").valueOf();
var m = moment(ts);
var s = m.format("M/D/YYYY H:mm");
alert("Values are: ts = " + ts + ", s = " + s);
내 컴퓨터에서 미국 태평양 시간대의 결과는 다음과 같습니다.
값은 다음과 같습니다. ts = 1413388800000, s = 2014 년 10 월 15 일 9:00
입력 값은 현지 시간으로 해석되므로 ts
다른 시간대에있는 경우 다른 값을 얻게됩니다 .
또한 전체 초 단위로 작업하고 싶다면 (정확도를 잃을 수 있음) moment에는 이에 대한 방법도 있습니다. 당신이 사용하는 것이 .unix()
전체 초에 타임 스탬프를 반환하고, moment.unix(ts)
순간에 다시 구문 분석 할 수 있습니다.
var ts = moment("10/15/2014 9:00", "M/D/YYYY H:mm").unix();
var m = moment.unix(ts);
http://momentjs.com/docs/#/displaying/unix-timestamp/
밀리 초가 아닌 유닉스 초의 수를 얻습니다!
비 ISO 8601 형식을 사용하고 있기 때문에 1000 을 곱 하거나 사용 valueOf()
하고 포맷터를 사용하는 것을 잊지 마십시오. 포맷터를 전달하는 것을 잊은 경우 날짜는 UTC 시간대 또는 잘못된 날짜로 구문 분석됩니다.
moment("10/15/2014 9:00", "MM/DD/YYYY HH:mm").valueOf()
'program tip' 카테고리의 다른 글
javax.xml.bind.UnmarshalException : 예기치 않은 요소입니다. (0) | 2021.01.10 |
---|---|
node.js string.replace가 작동하지 않습니까? (0) | 2021.01.10 |
Jquery Ajax, mvc.net 컨트롤러에서 성공 / 오류 반환 (0) | 2021.01.10 |
jquery : id에 특정 패턴이있는 요소 찾기 (0) | 2021.01.09 |
실제 TCP 및 UDP의 예는 무엇입니까? (0) | 2021.01.09 |