有谁能告诉我如何在backbonejs中区分两个日期选择器? 我尝试在我的视图中将其设为这样,但它会警告NAN:
initialize: function () {
this.model.on("change:auprov",function(){
var datedeb = new Date(this.model.get("auprov"));
var dateret = new Date(this.model.get("deprov"));
var diff_ms = dateret.getTime() - datedeb.getTime();
alert(diff_ms/1000/60/60/24);
//this.model.set({"dureeprov": '5'});
},this);
},
以下是我模特的一部分:
deprov:{
type: "DatePicker",
title: "De (Prov.)",
fieldAttrs:{
className:'col-sm-2 deprov'
},
validators: ["required"]
},
auprov:{
type: "DatePicker",
title: "Au (Prov.)",
fieldAttrs:{
className:'col-sm-2 auprov'
},
validators: ["required"]
},
此致
答案 0 :(得分:0)
直到我无法确定this.model.get("auprov")
和this.model.get("deprov")
的内容和类型我才能假设这些是数字。 Javascript有时会将数字作为字符串处理。因此,要更正它,请使用parseInt
将字符串转换为数字。
var datedeb = new Date(parseInt(this.model.get("auprov")));
var dateret = new Date(parseInt(this.model.get("deprov")));
答案 1 :(得分:0)
抱歉,我使用的是法语日期选择表格,所以我不得不将其更改为英文版,这里是正确的代码:
this.model.on("change:auprov",function(){
var myDateArrayRet = this.model.get("auprov").split("/");
var dateret = new Date(myDateArrayRet[2],myDateArrayRet[1]-1,myDateArrayRet[0]);
var myDateArray = this.model.get("deprov").split("/");
var datedeb = new Date(myDateArray[2],myDateArray[1]-1,myDateArray[0]);
var diff_ms = dateret.getTime() - datedeb.getTime();
alert(Math.ceil(diff_ms / (1000 * 3600 * 24)));
},this);