2012-03-30 2 views
3

Я хочу получить неделю Начальная дата недели. Я могу получить дату, именно так, что возвращаемая дата имеет время по текущему системному времени. Например, если его 19:20 часов прямо сейчас, я получаю дату начала недели как Date {Mon Mar 26 2012 19:20:16 GMT + 0530 (IST)}Получить дату() объект со специфическим временем

Для точных расчетов мне нужно время 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 
    */ 

В этом примере две даты с одной и той же базовой строкой разделены на 4 часа.

Смежные вопросы