2010-12-06 3 views
1

자바 스크립트의 getDate 함수에 매우 이상한 문제가 있습니다. date는 유닉스 타임 스탬프입니다자바 스크립트 getDate 문제

var day = new Date(date); 

되는 : 일부 기능의 시작에서, 나는 사용하여 Date 객체를 만들었습니다.

하루 개체를 변경하지 않지만 잠시 후이 개체의 달을 가져 오려고 시도하지만 day.getDate()은 계속 잘못된 값을 제공합니다.

alert(day.getTime() + "-" + day.getDate() + "-"+ day.getMonth() +"-" + day.getFullYear() + "-" + day.getHours() + "-" + day.getMinutes() + "-" + day.getSeconds()); 

나에게 다음과 같은 결과를 제공합니다 : 예를 들어

1290384000-15-0-1970-23-26-24

그리고 당신이를 조회하면이, 이상한 일부입니다

과 다른 점에서 결과가 1290297600-15-0-1970-23-24-57 unixtimestamp 1290297600 2010 년 11 월 21 일 00:00:00 gmt의 타임 스탬프입니다 (1290384000은 그 다음날, 같은 시간 임)
타임 스탬프는 cor rect하지만 나는 그것이 나에게주는 날짜에 대해 이해할 수 없다.
이것은 모든 브라우저에서 발생합니다.

내가 뭘 잘못하고 있니?

답변

2

JavaScript의 Date object은 Unix 타임 스탬프 (신기원 이후 경과 된 초)를 사용하지 않습니다. 실제로는 그 신기원 이후로 밀리 초가 걸립니다. date 변수에 1000을 곱하면 올바른 결과를 얻을 수 있습니다.

Example here

+0

선생님, 당신은 오늘 내 영웅입니다! 정말 고맙습니다. 완전히 간과 한 것입니다. – Tiddo

0

시간 = 유닉스 타임 스탬프 형식입니다. 나는 64800 초를 덧붙여서 Mountain Standard Time으로 변환 될 것입니다.

소인 * 24 * 60 * 60

.getTime() // 밀리 초 24 * 60 * 60 * 1000

전용하여 DateField dateField1; ///////////////////////

dateField1 = new DateField ("Date :", DateField.DATE); f.append (dateField1);

날짜 d = new Date(); dateField1.setDate (d);

String TimeSeg ​​= String.valueOf (((dateField1.getDate(). getTime()/1000) +64800));