2012-03-30 5 views
3

週を取得したいStart Date of week。私は日付を取得することができます、それはちょうど返された日付が現在のシステム時刻に時間を持っていることです。例えば、その夜07時20分時間が今、私は日として、週の開始日を取得していた場合、{月2012年3月26日十九時20分16秒GMT + 0530(IST)}正確な計算のために特定の時刻のDate()オブジェクトを取得する

、私が必要00:00:00 GMTになる時間。

どうすれば実現できますか?

私の現在のコードは次のようになります。

var tDate = new Date(); 
var wDate = new Date(); 

this.chosenDayIndex = this.currentDayIndex = tDate.getDay(); 

if (this.currentDate == '') { 

    this.currentDate = new Date(); 
    var today = formatDate(tDate); 
    var diff = tDate.getDate() - this.currentDayIndex + (this.currentDayIndex == 0 ? -6:1); 

    this.weekStartDate = this.weekMonDate = new Date(wDate.setDate(diff)); 
    this.weekEndDate = new Date(this.weekStartDate.getFullYear(),this.weekStartDate.getMonth(), this.weekStartDate.getDate()+6); 
    this.weekMonday = formatDate(this.weekMonDate);    

} 

this.weekStartDateは現在、現在のタイムスタンプと偽の開始日を配っています。

+1

日付オブジェクトには、 'setHours()'、 'setMinutes()'、 'setSeconds()'などがあります。 – Pointy

答えて

7

あなたはこれで週の開始に日付を設定することができます

var d = new Date(); 
d.setDate(d.getDate() - d.getDay()); 

その後、時間をクリアする.setHours(0).setMinutes(0)などを使用しています。

0

あなたの週は、月曜日に

d.setDate(d.getDate()-(d.getDay() ? d.getDay()-1 : 6)); 
d.setHours(0, 0, 0, 0); 
0
You can return the local time string or the GMT 

time string for any Date object 

by adjusting the local time accordingly: 


// 1. Monday(00:00:00 Local time) 
    var mon= new Date(); 
    mon.setHours(0, 0, 0, 0); 
    var d= mon.getDate(); 
    while(mon.getDay()!= 1) mon.setDate(--d); 

    alert(mon.toLocaleString()); 

    /* returned value: (String) 
    Monday, March 26, 2012 12:00:00 AM 
    */ 

// 2. Monday(00:00:00 GMT) 
    var umon= new Date(); 
    umon.setUTCHours(0, 0, 0, 0); 
    var d= umon.getUTCDate(); 
    while(umon.getUTCDay()!= 1) umon.setUTCDate(--d); 

    alert(umon.toUTCString()) 

    /* returned value: (String) 
    Mon, 26 Mar 2012 00:00:00 GMT 
    */ 

この例では、同じ基本的な文字列を持つ2つの日付が4時間離れています。

関連する問題