[javascript] 일반 날짜를 유닉스 타임 스탬프로 변환

2012.08.10자바 스크립트에서 일반 날짜 를 유닉스 타임 스탬프 로 어떻게 변환 합니까?

Fiddle : http://jsfiddle.net/J2pWj/

여기에서 PHP, Ruby 등으로 변환하는 많은 게시물을 보았습니다.하지만 JS 내에서이 작업을 수행해야합니다.



답변

new Date('2012.08.10').getTime() / 1000

JavaScript Date 문서를 확인하십시오 .


답변

parseInt((new Date('2012.08.10').getTime() / 1000).toFixed(0))

toFixed(0)밀리 초에서 초로 변환하려면 1000으로 나눌 때 소수점을 제거 하려면을 추가하는 것이 중요합니다 .

.getTime()함수는 밀리 초 단위로 타임 스탬프를 반환하지만 진정한 유닉스 타임 스탬프는 항상 초 단위입니다.


답변

moment.js api를 확인해야합니다. 사용하기 매우 쉽고 많은 기능이 내장되어 있습니다.

나는 당신의 문제에 대해 다음과 같이 사용할 수 있다고 생각합니다.

var unixTimestamp = moment('2012.08.10', 'YYYY.MM.DD').unix();


답변

var d = '2016-01-01T00:00:00.000Z';
console.log(new Date(d).valueOf()); // returns the number of milliseconds since the epoch


답변

단항 + 연산자를 사용하면됩니다.

(+new Date('2012.08.10')/1000).toFixed(0);

http://xkr.us/articles/javascript/unary-add/- 날짜 아래를보십시오.


답변

Date.parse ()를 사용할 수 있지만 허용되는 입력 형식은 구현에 따라 다릅니다. 그러나 날짜를 ISO 형식 (YYYY-MM-DD)으로 변환 할 수 있다면 대부분의 구현에서이를 이해해야합니다.

Date.parse가 잘못된 결과를 제공하는 이유는 무엇입니까?를 참조하십시오 . .


답변

var date = new Date('2012.08.10');
var unixTimeStamp = Math.floor(date.getTime() / 1000);

이 경우 정수만 반환하는 것이 중요합니다 (단순 나눗셈은 수행하지 않음). 또한 실제로 경과 된 초만 반환하는 것입니다 (이 코드가를 사용 Math.floor()하지 않고 사용하는 이유입니다 Math.round()).