通过单击Javascript中的nextdate按钮,可以增加日期、日期、月份和年份

Date, day, month and year increment by clicking nextdate button in Javascript

本文关键字:日期 增加 Javascript 单击 中的 nextdate 按钮      更新时间:2023-10-20

我通过单击nextDay和previousDay来增加和减少应用程序中的日期,日期在增加。但一旦它到达月底,如31、30、29(2月)、28(2月。但它一直在增长。到目前为止,我已经尝试了以下代码

   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;

函数set_todayDate(){

document.getElementById("todaysDate").innerHTML = 
                        ""+days[today.getDay()]+",
                       "+months[today.getMonth()]+" 
                      "+today.getDate()+" 
                     "+today.getFullYear();

}

对于下一个日期和上一个日期,只是我在增加和减少变量

      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();
   }

请任何人帮助我

试试这个:

if (!Date.now) {
  Date.now = function() {
    return new Date().getTime();
  }
}
var theDate = Date.now();
document.getElementById('date').innerText = getTheDate(theDate)
document.getElementById('prev').addEventListener("click", function() {
  theDate -= 86400000;
  document.getElementById('date').innerText = getTheDate(theDate)
})
document.getElementById('next').addEventListener("click", function() {
  theDate += 86400000;
  document.getElementById('date').innerText = getTheDate(theDate)
})
function getTheDate(getDate) {
  var days = ["Sunday", "Monday", "Tuesday",
    "Wednesday", "Thursday", "Friday", "Saturday"
  ];
  var months = ["January", "February", "March",
    "April", "May", "June", "July", "August",
    "September", "October", "November", "December"
  ];
  var theCDate = new Date(getDate);
  return days[theCDate.getDay()] + ', ' + theCDate.getDate() + '-' + months[theCDate.getMonth()] + '-' + theCDate.getFullYear();
}
<div id="date" style="height:100px; width:300px;">
</div>
<button id="prev">
  <</button>
    <button id="next">></button>

好吧,试试这个(下面是运行的示例):

var today = new Date();
 date = today.getDate();
 month= today.getMonth();
year= today.getFullYear();
month = month+1;
$("#Prev").click(function(){
   date = date -1;
  if(date<1){
  month = month -1;
    if(month == 0){
      year = year -1;
      date = 31;
      month = 12;
      } else{
      if(month == 2){
      date = 28
      } else if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){
       date = 31
      } else{
       date = 30
      }
      }
  }
  $("#displayDate")[0].innerHTML = date + "/" +  month + "/" + year;
});
$("#Next").click(function(){
   date = date + 1;
  if(date>28 && month == 2){
    date = 1;
    month = 3;
 } 
  if( date> 30 && (month == 4 || month == 6 || month == 9 || month == 11)){
  date = date +1;
    month = month +1;
  } else  if (date> 31){
  date =1; 
    month = month+1;
    if(month >12){
    year = year +1;
      month= 1; 
      date = 1;
    }
  }  
  
  $("#displayDate")[0].innerHTML = date + "/" +  month + "/" + year;
});
$("#displayDate")[0].innerHTML = date + "/" +  month + "/" + year;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div><button id="Prev">Prev</button><div id="displayDate"></div><button id="Next">Next</button></div>

注意:没有添加闰年的条件,但请告诉我这是否是预期的,然后我也会添加。

希望这将帮助您:)

我不明白为什么当日期达到30或31等等时,你的代码应该自动更新month。你正在使用getDate()函数,它返回一个数字。然后,您将其增加或减少1。它的作用就像var x=y+z。您要么必须操作Date对象,要么必须手动配置月份和闰年等系统。我在检查了Date Reference对象http://www.w3schools.com/jsref/jsref_obj_date.asp而且你似乎没有像C#中那样内置addDays()这样的函数。所以我想你将不得不手动实现日历规则。此外,请提及您在哪里声明和初始化nextDate

这里有一个简单的函数,可以将任意天数添加到给定日期,诀窍是使用日期对象的setDate方法

function addDays(date, days) {
    var result = new Date(date);
    result.setDate(result.getDate() + days);
    return result;
}

EDIT:由于日期类是可变的,您还可以添加一个方法来方便将来使用

Date.prototype.addDays = function(days) {
    this.setDate(this.getDate() + parseInt(days));
    return this;
};

有一个非常整洁的库,叫做moment.js,它处理许多日期操作任务,并提供各种方便的显示日期的方法。网页和文档都做得很好,所以我认为值得一看他们的努力。

这就是请求增加日期的工作在moment.js:中的样子

var new_date_str = moment().add(1, 'days').format("dd, MMMM, D, YYYY");

有关完整的运行示例,请参见此fiddle:https://jsfiddle.net/me6pdk8L/2/