2017-12-24 39 views
0

날짜가 "오전 8시"와 같은 텍스트로 변환되도록 코드를 작성하려고합니다. 이 코드를 테스트하려면 http://labs.codecademy.com/#:workspace을 사용하고 있습니다.날짜를 텍스트로 변환

var today = new Date(); 

    function calculateMeridian(num){ 
    if (num < 12) { 
     return "AM"; 
    } else if (num < 24) { 
     return "PM"; 
    } else if (num > 24) 
     console.log("calculateMeridian error: num too large, num not in hours"); 
     return "error"; 
} 

function convertMStoText(date) { //input as milliseconds, can't seem to input as actual date 
    var x = new Date(date); 
    var h = x.getHours; //change to let 
    var m = x.getMinutes; 
    var meridian = calculateMeridian(h); 
    console.log(h + ":" + m + " " + meridian); 
} 


convertMStoText(today); 

출력 :

function getHours() { [native code] }:function getMinutes() { [native code] } error 

출력 이미지 :

+0

메소드를 호출해야합니다. – jhpratt

+0

개발시 새로운 포인터를 실제로 사용할 수 있습니다. – Logrui

+0

그래서 x.Date.getHours? – Logrui

답변

2
var h = x.getHours; 
var m = x.getMinutes; 

필요가되게합니다

var h = x.getHours(); 
var m = x.getMinutes(); 
+0

Javascript에서 함수 (또는 메소드, 용어 선택)는 다른 것과 같은 값입니다. 'x.getHours'는 함수이고, 당신은'h'에 그것을 할당 할 수 있습니다,하지만 그것은 _call_하지 않습니다. 함수를 호출하려면, 그 뒤에 괄호를 써야합니다. 이것은 당신이 여기에없는 것입니다. (실제로 'var h = x.getHours; h();'와 같은 것을 시도 할 수 있지만,'h'가 가리키는'getHours'의 버전이 그것을 기억하지 못하기 때문에 결과가 같지 않을 것입니다 'x'와 함께 간다; 당신은'h.apply (x) '를 호출함으로써 상기시킬 수있다.) –

2

컴퓨터는 귀하가 요구 한 바를 정확히 출력합니다. 이 라인에서

봐하십시오 기능 h-를 할당하는 경우

var h = x.getHours; 

.

var h = x.getHours(); 

그것은 읽습니다 : "호출 방법 getHours에 매개 변수를 전달하지 객체 x에"당신이 의도하는 것은 함수에 의해 반환되는 결과를 할당하는 기능 전화,했다. 이것은 빈 괄호를위한 것입니다.

분과 동일합니다.

0

업데이트 함수 :

function convertMStoText(date) { //input as milliseconds, can't seem to input as actual date 
    var x = new Date(date); 
    var h = x.getHours(); //change to let 
    var m = x.getMinutes(); 
    var meridian = calculateMeridian(h); 
    console.log(h + ":" + m + " " + meridian); 
} 

getHours() 및 getMinutes() 함수입니다.