일반 날짜를 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
'programing' 카테고리의 다른 글
get_env()가 내 부울 환경 변수를 문자열로 취급하는 이유는 무엇입니까? (0) | 2023.09.15 |
---|---|
jQuery가 있는 HTML 게시물로 iframe 대상 지정 (0) | 2023.09.15 |
캔클리어inside setIntervalIntervalIntervalIntervalIntervalIntervalIntervalInterval()? (0) | 2023.09.15 |
길이 프리픽스 문자열이 극복하는 제로 터미네이션 문자열의 문제점은 무엇입니까? (0) | 2023.09.15 |
엔티티 관리자를 주입하는 중입니다.엔티티 매니저 팩토리 (0) | 2023.09.15 |