2017-08-02 16 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

私はそれをチェックさせてください –

関連する問題