通过单击Javascript中的下一个日期按钮来增加日期、天、月和年
我通过单击下一天和上一天来增加和减少我的应用程序中的日期,日期正在增加,但一旦它到达月底,如31、30、29(2月)、28(2月),那么它也应该更改月份和日期。但它还在不断增加。到目前为止,我已经尝试了以下代码通过单击Javascript中的下一个日期按钮来增加日期、天、月和年,javascript,date,Javascript,Date,我通过单击下一天和上一天来增加和减少我的应用程序中的日期,日期正在增加,但一旦它到达月底,如31、30、29(2月)、28(2月),那么它也应该更改月份和日期。但它还在不断增加。到目前为止,我已经尝试了以下代码 var today = new Date(); var days = ["Sunday","Monday","Tuesday", "Wednesday","Thursday","Friday","Saturday"]; var mont
var today = new Date();
var days = ["Sunday","Monday","Tuesday",
"Wednesday","Thursday","Friday","Saturday"];
var months = ["January","February","March",
"April","May","June","July","August",
"September","October","November","December"];
var nextDate = 0;
函数集_todayDate()
{
}
对于下一个日期和上一个日期,我只是增加和减少变量
function nextDateMethod(){
nextDate++;
document.getElementById("todaysDate").innerHTML = ""+days[today.getDay()
+dayIncrement]+
", "+months[today.getMonth()]+"
"+(today.getDate()+dayIncrement)+""+today.getFullYear();
}
function prevDate(){
nextDate--;
document.getElementById("todaysDate").
innerHTML = months[today.getMonth()]+",
"+(today.getDate()+nextDate)+" "+today.getFullYear();
}
请任何人帮助我我不明白为什么当日期达到30或31左右时,您的代码会自动更新月份。您使用的是getDate()函数,它返回一个数字。然后,将其增加或减少1。它的行为就像
var x=y+z
。您必须操作日期
对象,或者必须手动配置月份和闰年等系统。
我在上检查了日期引用对象,似乎没有像C#中那样内置addDays()这样的功能。所以我想你必须手动执行日历规则。
另外,请提及您在何处声明和初始化了下一个日期,这里有一个简单的函数可以向给定日期添加任意天数,诀窍是使用date对象的setDate方法
function addDays(date, days) {
var result = new Date(date);
result.setDate(result.getDate() + days);
return result;
}
编辑:因为date类是可变的,所以您还可以添加一个方法以便于将来使用
Date.prototype.addDays = function(days) {
this.setDate(this.getDate() + parseInt(days));
return this;
};
那么,试试这个(下面是运行示例):
var today=新日期();
date=today.getDate();
month=今天。getMonth();
年=今天。getFullYear();
月=月+1;
$(“#Prev”)。单击(函数(){
日期=日期-1;
如果(日期28和月份==2){
日期=1;
月=3;
}
如果(日期>30&(月==4 |月==6 |月==9 |月==11)){
日期=日期+1;
月=月+1;
}否则,如果(日期>31){
日期=1;
月=月+1;
如果(月份>12){
年份=年份+1;
月=1;
日期=1;
}
}
$(“#displayDate”)[0]。innerHTML=date+“/”+月+“/”+年;
});
$(“#displayDate”)[0]。innerHTML=date+“/”+月+“/”+年代码>
上一步
尝试以下操作:
如果(!Date.now){
Date.now=函数(){
返回新日期().getTime();
}
}
var theDate=Date.now();
document.getElementById('date')。innerText=getheDate(theDate)
document.getElementById('prev')。addEventListener(“单击”,函数(){
日期-=86400000;
document.getElementById('date')。innerText=getheDate(theDate)
})
document.getElementById('next')。addEventListener(“单击”,函数(){
日期+=86400000;
document.getElementById('date')。innerText=getheDate(theDate)
})
函数getTheDate(getDate){
var days=[“星期日”、“星期一”、“星期二”,
“星期三”、“星期四”、“星期五”、“星期六”
];
var月数=[“一月”、“二月”、“三月”,
“四月”、“五月”、“六月”、“七月”、“八月”,
“九月”、“十月”、“十一月”、“十二月”
];
var theCDate=新日期(getDate);
返回天数[TheDate.getDay()]+','+TheDate.getDate()+'-'+月份[TheDate.getMonth()]+'-'+TheDate.getFullYear();
}
有一个非常简洁的库,名为moment.js,它处理许多日期操作任务,并提供各种方便的方式来显示日期。网页和文档都做得很好,所以我认为他们的努力值得一看
这就是在moment.js中增加日期的请求作业的外观:
var new_date_str = moment().add(1, 'days').format("dd, MMMM, D, YYYY");
查看此小提琴以了解完整的跑步示例:有趣!我不知道这是有效的。事实上,date对象足够智能,可以识别您想要设置的日期是否大于它的月份天数。是的,我发现文档中缺少我自己,这显然不是一个非常直观的结构@AntonHaraldSir它工作得很好。。谢谢。。事实上,我正在寻找这种格式。没问题!很高兴这有帮助!:)真的,它帮了我很多…-)只有代码的答案没有帮助。你应该解释为什么OP有他们的问题,以及你的答案是如何解决的。事实上,我采取了不同的方法,给了他/她一个解决方案。我没有真正解决这个问题,而是绕道而行。我的代码又短又简单,所以我认为没有必要解释。下次我会牢记在心。你的基本问题是如何在一个日期上加上1天,这里已经有了答案:。请准确回答这个问题!如果您希望获得特定的输出格式,请在问题中明确提及。
var new_date_str = moment().add(1, 'days').format("dd, MMMM, D, YYYY");