我必须为客户端构建一个没有任何库(如jQuery)的DatePicker。 我在我的本地机器上取得了成功。但是我的客户现在正在使用它,如果它包含在他的网络应用程序中,它会显示一些奇怪的行为。
如果我选择5月31日并滚动到下个月,我将在7月1日结束。 DateObject infact在5月31日之前点击按钮以激活“jumpToNextMonth”函数。 我假设dateObject跳转到6月31日,这是非执行,然后再向前跳到7月1日。 这种情况也发生在8月以及所有其他30天的月份,然后是31天的月份。
点击时触发的行是
this.currentDate = new Date(this.currentDate.getFullYear(),
this.currentDate.getMonth() + 1,
this.currentDate.getDate());
我在本地计算机上看不到此行为,也没有看到它运行Apache服务器。 我无法想象在我的客户端网络应用程序上损坏日期对象是什么,很遗憾我无法访问他们的文件。
如果你能帮助我回答这两个问题,我真的很感激:
this.currentDate = new Date(this.currentDate.getFullYear(), this.currentDate.getMonth() + 1, 1);
我在这里找到了类似的未回答的问题 Flex Mobile 4.6: DateSpinner dateAndTime jumping from Jan 31st to March 1st
答案 0 :(得分:0)
您已回答了自己的问题。 6月31日的对象实际上是7月1日。
这会解决您的问题吗?
function daysInMonth(month, year)
{
return 32 - new Date(year, month, 32).getDate();
}
var y = this.currentDate.getFullYear();
var m = this.currentDate.getMonth() + 1;
var d = Math.min(this.currentDate.getDate(), daysInMonth(m, y);
this.currentDate = new Date(y, m, d);