簡體   English   中英

在Ember.js中計算日期差異

[英]Calculating Date Difference in Ember.js

我正在嘗試將此解決方案應用於Ember.js應用。 https://stackoverflow.com/a/3224854/2084924它顯然可以在jsfiddle中使用,但是我無法在Ember中正確實現它。

我正在學習,並且可能犯了一個明顯的錯誤。 我已將函數放置在模型中,並出現“ NaN”錯誤。 日期通過M / D / YYYY格式的輸入值傳遞。 任何人都有約會和余燼的經驗嗎? 您能看到為什么它無法解析日期嗎?

//app/model/task.js
import DS from 'ember-data';

export default DS.Model.extend({
  taskname: DS.attr(),
  startdate: DS.attr(),
  enddate: DS.attr(),
  duration: Ember.computed('startdate', 'enddate', function() {
    var date1 = new Date('startdate');
    var date2 = new Date('enddate');
    var timeDiff = Math.abs(date2.getTime() - date1.getTime());
    var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
    return diffDays;
  }),
  banding: DS.attr()
});

您不是從模型中讀取值,而是試圖將字符串“ startdate”和“ enddate”轉換為日期。 它應該是new Date(this.get('startdate'));

import DS from 'ember-data';

export default DS.Model.extend({
  taskname: DS.attr(),
  startdate: DS.attr(),
  enddate: DS.attr(),
  duration: Ember.computed('startdate', 'enddate', function() {
    var date1 = new Date(this.get('startdate'));
    var date2 = new Date(this.get('enddate'));
    var timeDiff = Math.abs(date2.getTime() - date1.getTime());
    var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
    return diffDays;
  }),
  banding: DS.attr()
});

試試這個代碼

//app/model/task.js
import DS from 'ember-data';

export default DS.Model.extend({
  taskname: DS.attr(),
  startdate: DS.attr(),
  enddate: DS.attr(),
  duration: Ember.computed('startdate', 'enddate', function() {
    var self = this;
    var date1 = new Date(self.get('startdate'));
    var date2 = new Date(self.get('enddate'));
    var timeDiff = Math.abs(date2.getTime() - date1.getTime());
    var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
    return diffDays;
  }),
  banding: DS.attr()
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM