2017-02-15 288 views
0

我正在比較date和angularjs的幫助。momentjs:diff函數不能正常工作

 curdate = moment(); 
     curdate = curdate.format('DD-MM-YYYY'); 
lastseen = moment(data.last_seen); //this data is coming from database (DD-MM-YYYY) 

lastseen = lastseen.isValid(); 
duration = lastseen.diff(curdate, 'days') ; 
alert(lastseen); // it is returning false. 

alert(duration); 

在螢火蟲我得到以下錯誤。

錯誤:lastseen.diff不是一個函數

對象{_i: 「2017年9月2日」,_f:未定義,_l:未定義,_isUTC:假的,_D:無效的日期}

請告知我做錯了什麼。

謝謝

讓我知道如果你需要更多的細節。

+0

您在這裏指定的布爾值 「lastseen = lastseen.isValid();」所以改變變量名「flag = lastseen.isValid();」用於測試的 –

+0

。我已經評論過這段代碼。同時測試。 – Ironic

回答

1

你可以跳過這一行lastseen = lastseen.isValid();,因爲當你這樣做時,最後看到的是一個布爾值,即真或假。這個數值不具有功能diff.

curdate = moment(); 
 
// skip this like.. use moment object 
 
     // curdate = curdate.format('DD-MM-YYYY'); 
 
lastseen = moment("24-02-2017",'DD-MM-YYYY'); //this data is coming from database (DD-MM-YYYY) 
 
//skip this also 
 
//lastseen = lastseen.isValid(); 
 
duration = lastseen.diff(curdate, 'days') ; 
 
alert(lastseen); // it is returning false. 
 

 
alert(duration);
<script src="http://momentjs.com/downloads/moment.js"></script>

+0

我試過,但它不工作。我得到錯誤:lastseen.diff不是函數 – Ironic

+0

對象{_i:「09-02-2017」,_f:undefined,_l:undefined,_isUTC:false,_d:無效日期} – Ironic

+0

也跳過這個'curdate = curdate .format( 'DD-MM-YYYY');」 。你有比較對象.. 和日期必須先解析lastseen = moment(「24-02-2017」,'DD-MM-YYYY'); –

1

替換此

lastseen = moment(data.last_seen); 

lastseen = moment(data.last_seen, "MM-DD-YYYY"); 

,不與一個布爾

更換lastseen
lastseen = lastseen.isValid(); 
+0

感謝您的回答。投了票。 – Ironic

1

,詳細瞭解moment.js Difference

var app = angular.module("app", []); 
 
app.controller("ctrl", function($scope) { 
 

 
var curdate = moment(); 
 
    var lastseen = moment('12-02-2017','DD-MM-YYYY'); //this data is coming from database (DD-MM-YYYY) 
 

 
    var flag = lastseen.isValid(); 
 
    var duration = curdate.diff(lastseen, 'days'); 
 
    alert(flag); // it is returning false. 
 

 
    //Adding plus to include start date, If you want to include 
 
    alert(duration+1); 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
    {{resultados}} 
 
</div>

+0

感謝您的回答。投了票。 – Ironic