제목 | 자바 스크립트에서 날짜 데이터 처리 하면 nan 이 나와서 문제 발생 ㅠ,ㅠ | ||
---|---|---|---|
글쓴이 | AMKORJS | 작성시각 | 2014/07/14 14:07:14 |
|
|||
function parseDate(strDate) { var _strDate = strDate; var _dateObj = new Date(_strDate); if (_dateObj.toString() == 'Invalid Date' || _dateObj.toString() == 'NaN') { _strDate = _strDate.split('.').join('-'); _dateObj = new Date(_strDate); } if (_dateObj.toString() == 'Invalid Date' || _dateObj.toString() == 'NaN') { var _parts = _strDate.split('/'); var _dateParts = _parts[0]; _dateObj = new Date(_dateParts); if(_dateObj.toString() == 'NaN'){ var _strDates = _strDate.split('-'); _dateObj = new Date(_parts); } alert(_dateObj); if (_parts.length > 1) { var _timeParts = _parts[1].split(':'); _dateObj.setHours(_timeParts[0]); _dateObj.setMinutes(_timeParts[1]); if (_timeParts.length > 2) { _dateObj.setSeconds(_timeParts[2]); } } } return _dateObj; } function reverse_counter(){ today = new Date(); start_d_day = parseDate("2014-07-10/10:40"); // 위에 있는 parseDate 함수로 가게된다. 생략..... PHP DATE 함수 결과값과 자바스크립트 DATE 함수 결과값이 달라서 파이어폭스 와 크롬에서는 Invalid Date , 익스에서는 NaN 로 변환되어서 나오는데 그래서 따로 Invalid Date 나오게 되면 parseDate 라는 함수를 만들어서 알맞게 자바스크립트식 DATE 함수로 변환하게 했습니다만 ㅠ,ㅠ 문제는 익스 에서 NaN출력되었을때 처리하는 방법을 잘 모르겠네요 ㅠ,ㅠ 이것은 어떻게 해야하나요 ? 인터넷 뒤져봐도 NaN 처리 할수 있는 함수가 안보이네요 ㅠ,ㅠ |
|||
다음글 | multi select 박스 저장관련 문의 (4) | ||
이전글 | 웹폰트 사용하고 페이지 접속시 글자가 변하는 현상 문제... (3) | ||
AMKORJS
/
2014/07/14 14:28:41 /
추천
0
|
kaido
/
2014/07/14 17:07:47 /
추천
0
음.. 고생 하시는데 안좋은 소식하나 전하고 갈게요.
자바스크립트의 날짜는 클라이언트의 [유저의 브라우져]시간이라서 맞지 않습니다. 일단 오늘 날짜 시간 구해 오는것 부터 php로 받아서 자바스크립트에 넘기셔야 될것 같습니다. |
AMKORJS
/
2014/07/14 17:50:06 /
추천
0
해결 했습니다.
function parseISO8601(str) { // we assume str is a UTC date ending in 'Z' var parts = str.split('T'), dateParts = parts[0].split('-'), timeParts = parts[1].split('Z'), timeSubParts = timeParts[0].split(':'), timeSecParts = timeSubParts[2].split('.'), timeHours = Number(timeSubParts[0]), _date = new Date; _date.setFullYear(Number(dateParts[0])); _date.setMonth(Number(dateParts[1])-1); _date.setDate(Number(dateParts[2])); _date.setHours(Number(timeHours)); _date.setMinutes(Number(timeSubParts[1])); _date.setSeconds(Number(timeSecParts[0])); if (timeSecParts[1]) _date.setUTCMilliseconds(Number(timeSecParts[1])); // by using setUTC methods the date has already been converted to local time(?) return _date; } function reverse_counter(){ today = new Date(); start_d_day = parseISO8601("2014-07-18T17:05:00Z"); <-- 제가 구할려고 하는 시간 생략.... |
kaido
/
2014/07/14 19:07:57 /
추천
0
해결하셨다니 다행이네요 수고하셨어요 ^^
|
방법 하나 찾았는데 ... 이것은 몇분 몇초까지는 지원되지 않네요 ㅠ,ㅠ 고칠려해도 무슨내용인지 모르겠고 ㅠ,ㅠ