2016-01-30 54 views
0

你好,我只需要在這另一套的眼睛。我創建了這個代碼來設置一個帶有當前日期的日曆,但它工作正常,但今天坐在30日,日曆仍顯示它始於sat 1月23日。javascript日期對象不正確的日期

這裏是我的codepen它: http://codepen.io/cavascript/pen/MKXrbj

這裏是代碼:

var date = new Date(); 
    var saturday = date.getDate() - date.getDay() - 1; 
    var sunday = date.getDate() - date.getDay() ; 
    var monday = date.getDate() - date.getDay() + 1 ; 
    var tuesday = date.getDate() - date.getDay() + 2 ; 
    var wednesday= date.getDate() - date.getDay() + 3 ; 
    var thursday = date.getDate() - date.getDay() + 4 ; 
    var friday = date.getDate() - date.getDay() + 5 ; 
    var saturday = (new Date(date.setDate(saturday))).toDateString(); 
    var sunday = (new Date(date.setDate(sunday))).toDateString(); 
    var monday = (new Date(date.setDate(monday))).toDateString(); 
    var tuesday = (new Date(date.setDate(tuesday))).toDateString(); 
    var wednesday = (new Date(date.setDate(wednesday))).toDateString(); 
    var thursday = (new Date(date.setDate(thursday))).toDateString(); 
    var friday = (new Date(date.setDate(friday))).toDateString(); 
    //add to html row 
    $('#dateRow').html('<td colspan="4">Date</td><td colspan="4">'+saturday+'</td><td colspan="4">'+sunday+'</td><td colspan ="4">'+monday+'</td><td colspan="4">'+tuesday+'</td><td colspan="4">'+wednesday+'</td><td colspan="4">'+thursday+'</td><td colspan="4">'+friday+'</td><td>Hours</td><td>Delete</td>'); 

這裏是HTML:

<div class="container-fluid"> 
<div class="table-responsive"> 
    <table class="table table-bordered"> 
    <tbody> 
     <tr id="dateRow"> 
     </tr> 
     <tr> 
     <td colspan="4">Name</td> 
     <td colspan="2">Br/lnch</td> 
     <td colspan="2">Dinner</td> 
     <td colspan="2">Br/lnch</td> 
     <td colspan="2">Dinner</td> 
     <td colspan="2">Br/lnch</td> 
     <td colspan="2">Dinner</td> 
     <td colspan="2">Br/lnch</td> 
     <td colspan="2">Dinner</td> 
     <td colspan="2">Br/lnch</td> 
     <td colspan="2">Dinner</td> 
     <td colspan="2">Br/lnch</td> 
     <td colspan="2">Dinner</td> 
     <td colspan="2">Br/lnch</td> 
     <td colspan="2">Dinner</td> 
     <td>&nbsp</td> 
     <td>&nbsp</td> 
     </tr> 
    </tbody> 
    </table> 
</div> 

謝謝你的任何輸入

+1

如果這種表總是當前日期前的一星期? –

+2

這個邏輯沒有意義'date.getDate() - date.getDay() - 1' ...做數學...'30-6-1 = 23' – charlietfl

+0

不,它不應該開始一週在當前日期之前,你是對的,邏輯沒有意義。它應該從當週的星期六開始。對不起,我只是分散腦袋 –

回答

1

您的代碼

date.getDate() - date.getDay() - 1; 

將返回23,因爲我們目前對30/01/2016 - 因此它不正是你問它做:)

退房Date.jsMoment.js其中有許多輔助方法,使日期時間算術更容易。

我想你不希望顯示的星期不是總是從星期六23日到星期五29。

可能的解決辦法:調用GETDATE()檢查,如果結果是一個週六以此作爲var saturday並從那裏你可以推斷週一 - 週五。但是,如果GETDATE()不是一個週六找到以前週六和使用。

而且,calendars

一個有用的資源一展 - 如果你不能做到這一點,然後彈出我留言,我會很樂意幫忙。

+0

感謝您的意見,這有助於這麼多 –