JS getDate比较在某些日期不起作用

时间:2017-12-02 00:26:56

标签: calendar getdate

我正在我的网站上制作一个简单的日历,我正在努力完成以下任务:

  • 今天的日期应该是深色背景色(css class:nyt)
  • 未来的日子应该出现在较浅的背景颜色上(css class:tuleva)
  • 过去几天应该出现0.5不透明度(css class:menny)

这是我正在使用的javascript代码:

$(function() {
var date = new Date(),

currentDate = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + 

date.getDate();

$(".kalenteripv").each(function() {

var specifiedDate = $(this).data('date');
if (specifiedDate == currentDate) {
$(this).addClass('nyt');}  // this day 
else if (currentDate > specifiedDate) {
$(this).addClass('menny');}  // past days 
else {$(this).addClass('tuleva');} // future days
});
});

今天(2017-12-2),由于某种原因日历显示日期10-19在0.5不透明度,所以代码将“menny”或过去日期的css类添加到那些日期,这显然不应该这样做。我已经尝试用两位数写日期(例如2017-12- 02 ),但是当我这样做时,整个代码就会停止工作。

Here's an image to clarify the problem with dates 10-19

有什么建议吗?它一定是我正在做的某种简单的错误,但我真的无法弄清楚自己。我希望我能够清楚地解释这个问题。

这是显示问题的小提琴。

https://jsfiddle.net/vfy1bfnz/

提前谢谢!

1 个答案:

答案 0 :(得分:0)

$(function pvmr() {

var today = new Date();

var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();

if(dd<10) {
dd = '0'+dd
} 

if(mm<10) {
mm = '0'+mm
} 

today = yyyy + "-" + mm + "-" + dd;

$(".kalenteripv").each(function pvmr() {
var specifiedDate = $(this).data('date');




if (specifiedDate == today) {
  $(this).addClass('nyt');
} else if (today < specifiedDate) {
  $(this).addClass('tuleva');
} else if (today > specifiedDate) {
  $(this).addClass('menny');
}
});
});

解决了!我想我应该留下答案,以防某些人有一天需要代码。