Javascript 计算Ember.js中的日期差异
我正在尝试将此解决方案应用于一个Ember.js应用程序。 它显然在JSFIDLE中工作,但我无法在Ember中正确实现它 我正在学习,可能犯了一个明显的错误。我将函数放在模型中,得到一个“NaN”错误。日期以M/D/YYYY格式通过输入值传递。有人有过约会和余烬的经验吗?你能理解为什么它不能解析日期吗Javascript 计算Ember.js中的日期差异,javascript,ember.js,Javascript,Ember.js,我正在尝试将此解决方案应用于一个Ember.js应用程序。 它显然在JSFIDLE中工作,但我无法在Ember中正确实现它 我正在学习,可能犯了一个明显的错误。我将函数放在模型中,得到一个“NaN”错误。日期以M/D/YYYY格式通过输入值传递。有人有过约会和余烬的经验吗?你能理解为什么它不能解析日期吗 //app/model/task.js import DS from 'ember-data'; export default DS.Model.extend({ taskname: DS
//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”转换为日期。它应该是新日期(this.get('startdate')代码>
您没有从模型中读取值,只是尝试将字符串“startdate”和“enddate”转换为日期。它应该是新日期(this.get('startdate')代码> 试试这个代码
//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()
});
试试这个代码
//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()
});
当然当别人指出这一点时,这是完全有道理的。谢谢,当然!当别人指出这一点时,这是完全有道理的。谢谢。这和上面的原因是一样的。我没有从对象调用值。谢谢。无需分配
var self=this代码>在这个场景中。只有当您想在某种回调中重用时才需要它(即使是这样,箭头函数也会生成更干净的代码)。@Karl JohanSjögren是的,我这样做是为了确保函数上是否存在回调。但您认为这与上述原因相同。我没有从对象调用值。谢谢。无需分配var self=this代码>在这个场景中。只有当您想在某种回调中重用时才需要它(即使这样,箭头函数也会生成更干净的代码)。@Karl JohanSjögren是的,我这样做是为了确保函数上是否存在回调。但您是对的