如何在javascript中转换日期列值,以及如何增加此日期变量?

时间:2014-03-04 12:57:59

标签: javascript sharepoint

我在线使用sharepoint 2013。我创建了一个自定义列表。在此列表中,我使用JSLink在列中显示图标。我想做一些逻辑来显示红色或绿色图标。我现在在js 2日期。我列中当前项目的日期和今天的日期。我想做以下检查:

var contractEndDate = ctx.CurrentItem.Contract_x0020_einddatum;

    var today = new Date();


    if((contractEndDate + 10 days) > today)
    {
        return "<img src='https://myCompany.sharepoint.com/sites/teams/Sales/SiteAssets/green.png'/>";
    }
    else
    {
        return "<img src='https://myCompany.sharepoint.com/sites/teams/Sales/SiteAssets/red.png'/>";
    }

如何将var contractEndDate转换为日期?我怎样才能在10天内增加它?

3 个答案:

答案 0 :(得分:1)

添加10并比较:

var endPlus10 = new Date(contractEndDate);
endPlus10.setDate(contractEndDate.getDate() + 10);

if (endPlus10 > today) ...

答案 1 :(得分:0)

getTime方法返回的值是自1970年1月1日00:00:00 UTC以来的毫秒数。您可以计算一天中的毫秒数(请参阅one_day变量)并比较日期。

请参阅我的JS小提琴,http://jsfiddle.net/cVm59/1/

var contractEndDate = new Date("2-18-2014"),
today = new Date(),
one_day = 1000 * 60 * 60 * 24;

if((contractEndDate.getTime() + (one_day*10)) > today.getTime())
{
    console.log("Less than 10 days ago");
}
else
{
    console.log("More than 10 days ago");
}

答案 2 :(得分:0)

这应该是你要找的东西:

var contractEndDate = ctx.CurrentItem.Contract_x0020_einddatum;

var today = new Date();

var CED = new Date(contractEndDate);
CED.setDate(CED.getDate() + 10);

if(CED > today)
{

将CED创建为新日期,然后使用setDate,这只会在您进行比较之前添加10天。您可以清理它,只需将contractEndDate设置为新日期,但由您决定。