2014-01-22 150 views
0

我在骨干中的underscore.js模板上工作。在模板中我收到日期在unix时间。我把它们转换成一个日期乘以1000.骨干js。比较日期

在一个循环中,我试图比较它们。我想检查它们之间有多少天。 我希望能够打印不同的HTML取决于日期之间的差异是多于或少于5天。

所以,如果不到5天前它上传我想打印一些HTML。如果不是,我想打印一些其他的HTML。

我该怎么做?任何人都知道?

<% collection.each(function(model,index) { 

    var a = moment(new Date(model.get("uploaded_date")*1000)); /*represents when the item got uploaded/approved*/ 
    var b = moment(new Date(now)*1000); /*represents the server time*/ 
    var diff = b.diff(a, 'days'); 

    %> 

    <div class="content"> 
     <% if(diff<5) { %> 

      /*doesn't work*/ 

     <% } %> 
    </div> 

<% }); %> 
+0

console.log(diff)给你什么? –

+0

它应该给我在几天之内的“a”和“b”之间的差异。 像1,5或7等,它的确如此。但它有点偏离。在哪里它应该给我2我得到1.例如:如果“批准”设置为两天前我得到一个日期。如果它设置为昨天,我也会得到一个。 – user3122094

+0

不要把你的模板登录,在你的模型或辅助功能上创建一个方法。 – pleasedontbelong

回答

0

试试这个:而不是

var b = moment(new Date(now*1000)); /*represents the server time*/ 

var b = moment(new Date(now)*1000); /*represents the server time*/ 

默认情况下,瞬间#DIFF将返回数(四舍五入)。如果你想要浮点数,传递true作为第三个参数:

var diff = b.diff(a, 'days', true); 
+0

谢谢!我比较日期寿命仍然有同样的问题。 – user3122094

+0

问题是我想打印两天之间的天数。并检查它们之间是否多于或少于5天。我也需要把它转过来。如果该项目在该日期之间的0天内应该“活跃”5天。如果它们之间的5天时间内,同事应该“不活跃”。 (我添加不同的课程)。 – user3122094

+0

你可以添加'model.get(“uploaded_date”)'和'now'的值吗? –