2017-03-02 67 views
0

我對javascript很新,最近開始進入臨時Web開發。我有一個函數應該返回自輸入日期以來的天數。代碼包含在下面。JavaScript函數未定義使用Moment.js

<script type = "text/javascript"> 
function daysSince(date) { 
    var i = moment(moment().format('YYYYMMDD')).diff(moment(moment().format(date))); 
    return i; 
} 
</script> 

由於未知的原因,此功能未定義,我想幫助找出原因。我將它與我的頁面上的其他工作函數進行了比較,並且無法確定我在做什麼錯誤。我已經驗證了,輸入到控制檯時,主要代碼行(i的定義)可以正常運行。任何幫助確定問題將不勝感激。

+0

它可能是未定義的時刻,而不是您的功能?你從哪裏來的? – dpix

+0

應該在其引用後調用時刻函數 –

+0

你如何以及在哪裏調用'daysSince()',以及在運行該代碼時在控制檯中看到的具體錯誤是什麼? – nnnnnn

回答

1

以下爲我工作:

<html> 
 
<body> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script> 
 
    <script> 
 
    function daysSince(date) { 
 
     return moment().diff(date, 'days'); 
 
    } 
 
    console.log(daysSince(new Date('3/1/2016'))); 
 
    </script> 
 
</body> 
 
</html>

也許這只是訂購腳本的問題。

+1

謝謝,這是我的腳本排序問題。我也修改我的代碼更像你的代碼,因爲它更有效率。 – Encryptonite

+0

夥計們。如果你不介意,你能告訴我什麼是訂購腳本的正確方法嗎?我在這裏也有同樣的問題。 –

+0

@ Ye'ThuraAg腳本應該是反向依賴順序 - 這裏的「主」腳本取決於時刻(它假定「時刻」被定義),因此腳本首先被加載。 –