자바스크립트에서

특정일자의 자정시각을 간단하게 구하고 싶은데

그냥 getTime해서 864000*1000으로 나누어주고

int해주고(Math.floor로 처리) 다시 864000*1000 곱해주고

setTime 했는데

9시간 차이가 남.


난 UTC KST 이런 문제인가 싶었는데

잘 보니 그게 아닌거 같음.



저기서 뭘 잘못했는지 누가 좀 가르쳐주세여. ㅠㅠ


실행해볼 링크

https://jsfiddle.net/Lzu1to73/



아래는 대강 코드.


var theDay = new Date();

var sameAsDay = new Date();

sameAsDay.setTime(theDay.getTime());


var aDay = new Date();

var mod = 86400000;

var cal_str = "";

var mod_day = theDay.getTime(); cal_str += "mod_day getTime:" + mod_day + "\n";

mod_day = Math.floor(mod_day/mod); cal_str += "mod_day Math.floor:" + mod_day + "\n";

mod_day = mod_day*mod; cal_str += "mod_day *mod:" + mod_day + "\n";


aDay.setTime(mod_day);


var aDay2 = new Date(theDay);


aDay2.setHours(0);

aDay2.setMinutes(0);

aDay2.setSeconds(0);

aDay2.setMilliseconds(0);



alert(

theDay + "\n" +

sameAsDay + "\n" +

aDay + "\n" +

aDay2 + "\n" +

mod_day + "\n" +

aDay2.getTime() + "\n" +

cal_str + "\n" +

"");