获取具有特定时间的Date()对象

时间:2012-03-30 13:55:43

标签: javascript jquery

我希望获得一周的开始日期。我能够得到日期,只是返回的日期与当前系统时间有关。例如,如果现在是19:20小时,我将星期开始日期定为日期{2012年3月26日19:20:16 GMT + 0530(IST)}

为了准确计算,我需要时间为格林尼治标准时间00:00:00。

我怎样才能实现这一目标?

我目前的代码如下:

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目前正在使用当前时间戳分发错误的开始日期。

4 个答案:

答案 0 :(得分:9)

您可以使用以下日期将日期设置为星期几:

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

然后使用.setHours(0).setMinutes(0)等来清除时间。

答案 1 :(得分:0)

如果你周一开始你的一周,

d.setDate(d.getDate()-(d.getDay() ? d.getDay()-1 : 6));
d.setHours(0, 0, 0, 0);

答案 2 :(得分:0)

您需要使用日期getter函数的UTC版本。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getUTCDate

那将基于utc而非当地时间为您提供一天。

答案 3 :(得分: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小时。