我有一系列具有唯一日期的div,其中包括与div内容相关的一周开始和一周结束。如下所示:
<div class="dinnersWeeks">
<div class="startingDate">8/25/2013 12:00 AM</div>
<div class="endingDate">8/31/2013 12:00 AM</div>
<div class="weekLinkMenus"><a href="testweek.aspx">testweek.aspx</a></div>
</div>
<div class="dinnersWeeks">
<div class="startingDate">9/1/2013 12:00 AM</div>
<div class="endingDate">9/7/2013 12:00 AM</div>
<div class="weekLinkMenus"><a href="generalweek11.aspx">generalweek11.aspx</a></div>
</div>
<div class="dinnersWeeks">
<div class="startingDate">9/8/2013 12:00 AM</div>
<div class="endingDate">9/14/2013 12:00 AM</div>
<div class="weekLinkMenus"><a href="generalweek12.aspx">generalweek12.aspx</a></div>
</div>
我一直在努力确定当前日期是否介于每周div的开始日期和结束日期之间。
$('div.dinnersWeeks').each( function() {
sd = new Date( $(this).find( 'div.startingDate' ).text() );
ed = new Date( $(this).find( 'div.endingDate' ).text() );
currentDate = new Date();
console.log(check > sd && currentDate < ed);
});
之后,我会为当前周的div和下周的div分配一个ID。
非常感谢任何指导。
答案 0 :(得分:1)
以下内容应该有效。我认为checked
是原始代码中的拼写错误。我还添加了一个更改背景颜色的示例。这可以很容易地更改为根据您的偏好设置id
。
的JavaScript
$('div.dinnersWeeks').each( function() {
sd = new Date( $(this).find( 'div.startingDate' ).text() );
ed = new Date( $(this).find( 'div.endingDate' ).text() );
currentDate = new Date();
if(currentDate > sd && currentDate < ed) {
$(this).css('background-color', 'red');
}
});
JSFiddle :http://jsfiddle.net/markwylde/4wuwZ/
请注意,如果您想在此项目中执行许多与日期相关的任务,我会查看moment.js框架,或者类似的框架。这里有一篇很好的stackoverflow帖子,解释了使用它可以做到以上的整洁方式:
答案 1 :(得分:0)
我假设您使用服务器端语言输出HTML?如果是这种情况,我只想用Unix时间向div添加一个属性,然后运行比较器。我确定有一个库可以在jQuery中进行日期比较,但如果你不想做任何复杂的事情,你可以使用Unix。
<div class="dinnersWeeks">
<div class="startingDate" z-start-unix="3000392">8/25/2013 12:00 AM</div>
<div class="endingDate" z-end-unix="3001394">8/31/2013 12:00 AM</div>
<div class="weekLinkMenus"><a href="testweek.aspx">testweek.aspx</a></div>
</div>
然后:
$('div.dinnersWeeks').each( function() {
currentDate = Math.round(new Date().getTime() / 1000);
console.log(check > $(this).find('div.startingDate').attr('z-start-unix') && currentDate < $(this).find('div.endingDate').attr('z-end-unix'));
});