2015-04-22 62 views
0

我试图按日期确定项目是否到期。在我的使用案例中,我的用户将使用以下格式(MM/DD或06/15)创建一个日期项目。现在,如果用户选择的日期将在接下来的30天或一个月内出现,那么它会变成红色。如果日期在下一个60天或更短的时间内(直到达到30),那么它将是橙色的,如果大于60,它们会变成黄色。使用javascript/jquery查看列表中的项目是否即将到期Sharepoint 2013

所以我只想澄清,如果我的日期< = 30,从今天的日期天,然后变成红色等等...

我一直在寻找到Date.js进行这些计算,但不能确定如何开始。

什么我至今想为以下几点:

var _dueDate = CurrentItem.DateNeeded; //not sure if this is correct syntax for SharePoint development 
var now = Date(); 

var nowPlus30 = new Date(); 
nowPlus.setDate(now.getDate() + 30); 

var nowPlus90 = new Date(); 
nowPlus.setDate(now.getDate() + 90); 

if (_dueDate == '' || !_dueDate) { 
    return ''; 
} 

and then just using the values to change the background color for example: 

    if(_dueDate <= nowPlus30) //find the data to use to determine the color 
      { 
       x[i].parentNode.style.backgroundColor = 'orange'; // set the color 
      } 

但做这些每个条件至今没有工作,所以我认为使用Date.js可以帮助,但再次,不知道如何进行,因为我不能使用SharePoint设计器来使用那些内置在条件语句中的内容,所以我必须使用JavaScript来执行操作。以前曾问过这个问题,但我认为这更像是一个JavaScript问题,而不是SharePoint问题。

请帮忙!

+0

约会对象_dueDate似乎永远是今天的日期。你在别的地方给它分配另一个值吗? – Robbert

+0

@罗伯特,好吧,这是有道理的。到期日期应该是用户在该项目中提供的日期。那么真的会是,例如:CurrentItem.DateNeeded,其格式为04/15。 – CSharpDev4Evr

+0

04/15等同于2015年4月1日吗?或者这是否意味着每月的最后一天?或中间?为什么不将日期存储为实际日期而不是月份和年份? – Robbert

回答

0

虽然你不提你是如何从SharePoint检索数据,一旦你的截止日期值,你可以创建一个这样

var dueDate = '4/15'; 
var dParts = dueDate.split('/'); 
var year = ("20" + dParts[1]) * 1; //converts the string into a number 
var month = dParts[0] * 1; 
var _dueDate = new Date(year,month,1); 
相关问题