如何在javascript中找到去年的确切工作日?

时间:2015-05-18 13:45:55

标签: javascript date

我想在今天的javascript中找到去年的一周时间吗?

今天是2015年5月18日星期一 去年是2015年5月18日星期日

所以我想得到去年最近的星期一,例如在这种情况下,星期一,18.05.2014。

如何计算?

4 个答案:

答案 0 :(得分:1)

jsFiddle

<强> JS

// this will get the number of days required to go forward to reach the same day
function forwardDay(begin, end) {
    var result = 0;
    for (var i = 0; i < 6; i++) {
        if (begin == end) return result;
        result++;
        if (begin == 6) {
            begin = 0;
        } else {
            begin++;
        }
    }
}

// this will get the number of days required to go forward to reach the same day
function backwardDay(begin, end) {
    var result = 0;
    for (var i = 0; i < 6; i++) {
        if (begin == end) return result;
        result++;
        if (end == 0) {
            end = 6;
        } else {
            end--;
        }
    }
}

// gets today 
var today = new Date();
// gets the day number of today 0-6
var thisYearDay = today.getDay();
// sets to last year
today.setYear(today.getFullYear() - 1);
// gets last years day 0-6
var lastYearDay = today.getDay()
// calculates the number of days it would be going backwards
var backward = backwardDay(lastYearDay, thisYearDay);
// gets the number of days it would be going forwards
var forward = forwardDay(lastYearDay, thisYearDay);

console.log(backward);
console.log(forward);

// figuring out which was was shorter
if (forward < backward) {
    today.setDate(today.getDate() + forward);
} else {
    today.setDate(today.getDate() - backward);
}
// DONE!
console.log(today);

答案 1 :(得分:0)

使用d.setMonth(date.getMonth() -- 12);获取去年的某一天,使用var n = d.getDay();获取星期几。

0是星期日,1是星期一

下次首先使用谷歌; - )

答案 2 :(得分:0)

只需使用Date

即可

以下是一个例子:

&#13;
&#13;
var a = new Date();
var day = a.getDay();
a.setYear(1900+a.getYear()-1);
a.setDate(a.getDay()- day -1 );
alert(a);
&#13;
&#13;
&#13;

答案 3 :(得分:0)

如果您想使用JavaScript的内置函数之一,可以使用Date对象。或者,如果您想自己使用Zeller's Rule来计算星期几。