我在线使用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天内增加它?
答案 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设置为新日期,但由您决定。