programing

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

topblog 2023. 9. 15. 20:40
반응형

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

일반 날짜를 변환하려면 어떻게 해야 합니까?2012.08.10자바스크립트의 유닉스 타임스탬프에?

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




여기서 PHP, 루비 등으로 변환하는 게시물을 많이 봤습니다.근데 JS 안에서 해야 돼요.

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

JavaScript Date 문서를 확인합니다.

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

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

.getTime()function은 타임스탬프를 밀리초 단위로 반환하지만 실제 유닉스 타임스탬프는 항상 초 단위입니다.

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

moment.js api를 확인해보세요, 사용하기 매우 쉽고 내장된 기능이 많습니다.

당신의 문제를 위해, 당신은 다음과 같은 것을 사용할 수 있을 것 같습니다.

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

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

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

Date.parse ("2016.03.") 출력-> 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()).

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

Date.parse가 잘못된 결과를 제공하는 이유를 참조하십시오.

unary + 연산자를 간단히 사용할 수 있습니다.

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

http://xkr.us/articles/javascript/unary-add/ - 날짜 아래를 찾습니다.

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에서 이것을 사용하고 있으며, 시간대는 '호주/시드니'입니다.그래서 저는 .env 파일에 이 내용을 추가해야 했습니다.

TZ = 'Australia/Sydney'

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

process.env.TZ = 'Australia/Sydney'

타임스탬프를 unix 타임스탬프로 변환합니다.

const date = 1513787412; const unixDate = new Date(date * 1000);// Dec 20 2020 (object)

전환 후 타임 스탬프를 받다const TimeStamp = new Date(date*1000).getTime(); //1513787412000

dayjs 라이브러리 사용:

dayjs('2019-01-25').unix() // 1548381600

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

반응형