developer tip

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

copycodes 2020. 10. 20. 07:46
반응형

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


일반 날짜 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();

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

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

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


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


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

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


var datestr = '2012.08.10';
var timestamp = (new Date(datestr.split(".").join("-")).getTime())/1000;

타임 스탬프를 PHP의 타임 스탬프와 비교 한 후 위의 어느 것도 내 시간대에 맞지 않는 것 같습니다. 아래 코드는 내가하고있는 프로젝트에서 가장 중요한 PHP와 같은 결과를주었습니다.

function getTimeStamp(input) {
    var parts = input.trim().split(' ');
    var date = parts[0].split('-');
	var time = (parts[1] ? parts[1] : '00:00:00').split(':');

	// NOTE:: Month: 0 = January - 11 = December.
	var d = new Date(date[0],date[1]-1,date[2],time[0],time[1],time[2]);
	return d.getTime() / 1000;
}

// USAGE::
var start = getTimeStamp('2017-08-10');
var end = getTimeStamp('2017-08-10 23:59:59');

console.log(start + ' - ' + end);

NodeJS에서 이것을 사용하고 있으며 시간대 'Australia / Sydney'가 있습니다. 그래서 이것을 .env 파일에 추가해야했습니다.

TZ = 'Australia/Sydney'

위의 내용은 다음과 같습니다.

process.env.TZ = 'Australia/Sydney'

Date.parse () 메서드를 사용하여 수행 할 수 있습니다.

Date.parse($("#yourCustomDate).val())

Date.parse ( "03.03.2016") 출력-> 1456959600000

Date.parse ( "2015-12-12") 출력-> 1449878400000


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

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

참고 URL : https://stackoverflow.com/questions/11893083/convert-normal-date-to-unix-timestamp

반응형