2017-08-02 80 views
0

7月以后的日期格式化问题。显示的日期是每周格式。任何帮助将是非常appreciated.the日期是工作的罚款预期日期格式问题。 js jquery

$(document).ready(function() { 
     var curr = new Date; // get current date 
     var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week 
     var last = first + 6; // last day is the first day + 6 
     var startDate = new Date(curr.setDate(first)); 
     startDate = ((startDate.getMonth() + 1) < 10 ? '0' 
       : '') 
       + (startDate.getMonth() + 1) 
       + "/" 
       + ((startDate.getDate() < 10 ? '0' : '') + startDate 
         .getDate()) 
       + "/" 
+1

当你在JavaScript原生的Date对象的工作,你需要做一些额外的计算。 如果您正在使用[Moment.js](https://momentjs.com/)库,它们并不是必不可少的。它使你的开发更加舒适。 因此,如果您打算在这个或其他项目中进一步处理日期操作,我建议您现在开始使用[Moment.js](https://momentjs.com/)。 – alexfrize

回答

2

只是更改此代码

var endDate = new Date(startDate); 
endDate.setDate(startDate.getDate() + 6); 

您可以检查以下工作代码只是不工作。


 

 
$(document).ready(function() { 
 
     //var curr = new Date('2020-02-29'); // for leap 
 
     var curr = new Date();// get current date 
 
     var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week 
 
     var startDate = new Date(curr.setDate(first)); 
 
     var endDate = new Date(startDate); 
 
     endDate.setDate(startDate.getDate() + 6); 
 
     startDate = ((startDate.getMonth() + 1) < 10 ? '0' 
 
       : '') 
 
       + (startDate.getMonth() + 1) 
 
       + "/" 
 
       + ((startDate.getDate() < 10 ? '0' : '') + startDate 
 
         .getDate()) 
 
       + "/" 
 
       + startDate.getFullYear(); 
 

 
     endDate = ((endDate.getMonth() + 2) < 10 ? '0' : '') 
 
     //this might have some flaws if i make it to 2 it works but this is short term fix and will break again 
 
       + (endDate.getMonth() + 1) 
 
       + "/" 
 
       + ((endDate.getDate() < 10 ? '0' : '') + endDate 
 
         .getDate()) 
 
       + "/" 
 
       + endDate.getFullYear(); 
 

 
     document.getElementById("ok").innerHTML = startDate; 
 
     document.getElementById("napa").innerHTML = endDate; 
 

 
     $(".next") 
 
       .click(
 
         function() { 
 
          document.getElementById("tabletbody").innerHTML = ""; 
 
          var startdt = new Date($('#ok') 
 
            .text()); 
 
          startdt.setDate(startdt 
 
            .getDate() + 7); 
 
          document.getElementById("ok").innerHTML = (getDateFormat(startdt)); 
 

 
          var enddt = new Date($('#napa') 
 
            .text()); 
 
          enddt 
 
            .setDate(enddt 
 
              .getDate() + 7); 
 
          document.getElementById("napa").innerHTML = (getDateFormat(enddt)); 
 
          updateCompass(); 
 

 
          return false; 
 

 
         }); 
 

 
     function getDateFormat(d) { 
 
      var month = ((d.getMonth() + 1) < 10 ? '0' : '') 
 
        + (d.getMonth() + 1); 
 
      var dd = (d.getDate() < 10 ? '0' : '') 
 
        + d.getDate(); 
 
      return month + "/" + dd + "/" + d.getFullYear(); 
 

 
     } 
 

 
     $(".previous").click(function() { 
 
      document.getElementById("tabletbody").innerHTML = ""; 
 
      var startdt = new Date($('#ok').text()); 
 
      startdt.setDate(startdt.getDate() - 7); 
 

 
      $('#ok').text(getDateFormat(startdt)); 
 
      var enddt = new Date($('#napa').text()); 
 
      enddt.setDate(enddt.getDate() - 7); 
 

 
      $('#napa').text(getDateFormat(enddt)); 
 
      updateCompass(); 
 

 
      return false; 
 
     }); 
 
    });
<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
 
<div id="ok"></div> 
 
<div id="napa"></div>

+0

我有一个代码工作到7月31日,你认为如果条件会永久解决任何日期问题(闰年,5个星期月......)添加? – david

+0

是的,你使用硬编码日期检查它 –

+0

让我检查它 –