2012-03-30 11 views
3

Ich möchte Woche Startdatum einer Woche bekommen. Ich bin in der Lage, das Datum zu bekommen, es ist nur, dass das Datum zurückgegeben hat Zeit in Bezug auf die aktuelle Systemzeit. Zum Beispiel, wenn seine 19.20 Uhr gerade jetzt, ich bin die Woche Startdatum als Datum bekommen {Mo 26. März 2012 19.20.16 GMT + 0530 (IST)}Get Date() Objekt mit bestimmter Zeit

Für genaue Berechnungen, ich brauche Die Zeit ist 00:00:00 GMT.

Wie kann ich das erreichen?

Meine aktuellen Code sieht wie folgt aus:

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 derzeit übergibt den falschen Startdatum mit dem aktuellen Zeitstempel aus.

+1

Date-Objekte haben 'setHours()', 'setMinutes()', 'setSeconds()' usw. – Pointy

Antwort

7

Sie können das Datum zu Beginn der Woche mit diesem Satz:

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

Dann .setHours(0) verwenden, .setMinutes(0), etc., um die Zeit zu räumen.

0

, wenn Sie Ihre Woche am Montag beginnen, wollen

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 
    */ 

In diesem Beispiel liegen die beiden Daten mit der gleichen Grundzeichenfolge 4 Stunden auseinander.

Verwandte Themen