2011-09-08 4 views
4

date.js.를 사용하고 있습니다Date.js : 이상하게 작동하는 Date.now()

time_container.innerHTML = Date.now().toString('T'); 라인은 간단하게 작동했으며 Firebug 콘솔에 오류가 발생했습니다 : radix must be an integer at least 2 and no greater than 36. 그것은 더 일찍 확실히 일하고 있었다.

주 : date.js toString() 함수는 특수 format specifiers를 사용합니다.

var show_date = { 
    setup: function() { 
     setInterval(show_date.update, 5000); 
    }, 
    update: function() { 
     var date_container = app.get('js_date'); 
     var time_container = app.get('js_time'); 

     if (date_container) { 
      date_container.innerHTML = Date.today().toString('dS of MMMM yyyy'); 
     } 
     if (time_container) { 
      //time_container.innerHTML = Date.now().toString('T'); 
      var d1 = new Date(); 
      time_container.innerHTML = d1.toString('T'); 
     } 
    } 
} 
app.onload(show_date.setup); 

app.get()document.getElementById()의 바로 가기입니다. app.onload()은 짐작할 수 있듯이 onload 함수입니다.

선이 문제를 일으키는 것으로 설명했습니다. 덧글 작업 아래의 줄 바꾸기,하지만 원하는 형식을주지 않습니다. Th:mm:ss tt (시, 분, 초, am/pm)를 출력해야합니다. am/pm 비트가 누락되었습니다.

또한, 저는 Date.now()이 오늘 일찍 시작했음을 확신합니다. 아마 컴퓨터 시계를 가지고 놀아 보면서 차이가 나는지 지켜 볼 것입니다.

포함 된 date.js의 버전은 date-en-IE.js입니다. 코드에서 주장 날짜는 2008 년 5 월 13 일입니다. 비록 오늘 SVN 체크 아웃에서 얻었습니다.

+0

무엇을하려하십니까? 'toString'의 인수는 숫자를 인코딩하고자하는 기초입니다. 예를 들어'toString (16)'은 16 진수를 제공합니다. –

+0

아, 이제 date.js에'toString' 함수가 있다는 것을 알았습니다 (http://code.google.com/p/datejs/wiki/APIDocumentation#toString). 당신에게 date.js가 제대로 작동하지 않는다면 올바르게 포함되지 않는다는 것을 알게 될 것입니다. 콘솔에서'Date.today'를 해보고 그것이 무엇을 반환하는지보십시오. –

+0

'Date.today()'는 콘솔에서'Date {Tue Sep 08 2011 00:00:00 GMT + 0100 (GMT 일광 절약 시간)}'을 반환합니다. 그리고 같은 스크립트에서'date_container.innerHTML = Date.today(). toString ('dS of MMMM yyyy');가 정상적으로 작동합니다. 문제는'Date.now()'에만있는 것 같습니다. – TRiG

답변

5

인 ECMAScript 5는 이미 toString('T') 전화가 숫자가 아닌 Date 객체에 그래서 당신은 분명히 해당 버전을 호출하고 1970 년 1 월 1 일 이후의 밀리 초 수를 반환하는 Date.now() 기능을 가지고 있습니다. Number.prototype.toString은 오류가 발생한 부분 인 인수로 2에서 36까지의 숫자 만 사용할 수 있습니다.

조금만 살펴 본 후에 최신 Datejs 버전이 자체 기능을 추가하지 않은 것 같습니다. Date.now() 기능. 아마도 이전 버전을 사용했을 것입니다.

대신 new Date().toString('T')을 시도해보십시오. 어느 쪽이든 작동해야합니다.

+0

작동하지만 두 번째 문제가 여전히 적용됩니다. 날짜 형식이 제대로 적용되지 않았습니다. 내가'T' 또는'h : mm : ss tt'를 부를지라도, 나는'HH : mm : ss'를 얻습니다. 하지만 그건별로 중요하지 않은 훌륭한 세부 사항이라고 생각합니다. – TRiG

+0

@TRIG : 지금 당장은 그 부분에 대한 답이 없습니다. Datejs의 버그 일 수 있습니다. –

0

나는 FireFox에서 같은 오류가 발생했습니다. .toString() 메서드를 .toDateString()으로 변경하면 해당 문제가 해결 된 것 같습니다. 예 : Date.now().toDateString('M/d/yyyy HH:mm')

관련 문제