如何获取JS中约会的周数?

时间:2014-01-10 10:45:08

标签: javascript jquery

我需要找到从特定月份到目前为止的周数。

就像它在2013年11月(截至今天,2014年1月10日)一样,应该会有9周的时间。

有找到它的方法吗?

4 个答案:

答案 0 :(得分:2)

尝试以下方法:

  function differenceInWeeks(d1, d2) {
    var t2 = d2.getTime();
    var t1 = d1.getTime();

    return parseInt((t2-t1)/(24*3600*1000*7));
  }

getTime函数返回自1970/01/01以来的毫秒数,其余的只是数学。

答案 1 :(得分:2)

试试这个:

function weeksSince(dateString){
 var date = new Date(dateString);
 var today = new Date();
 return Math.floor((today-date)/(1000*60*60*24*7));
}

console.log(weeksSince("January 01, 2014"));
console.log(weeksSince("January 01, 2013"));
console.log(weeksSince("January 01, 2012"));

=> 1
=> 53
=> 105

答案 2 :(得分:1)

试试这个:

function weeks_between(date1, date2) {
// The number of milliseconds in one week
var ONE_WEEK = 1000 * 60 * 60 * 24 * 7;
// Convert both dates to milliseconds
var date1_ms = date1.getTime();
var date2_ms = date2.getTime();
// Calculate the difference in milliseconds
var difference_ms = Math.abs(date1_ms - date2_ms);
// Convert back to weeks and return hole weeks
return Math.floor(difference_ms / ONE_WEEK);
}

如果您希望它们非常精确(包括日期和时间),那么请使用这些jquery库:

<强> timeago

<强> javascript pretty date

答案 3 :(得分:1)

这有点模糊,其他答案都是正确的 - 一旦你理解了如何从日期中获得毫秒数,它基本上只是数学......

尝试这个小提琴作为开始;

http://jsfiddle.net/melchizidech/UGWe6/

Date.prototype.daysSince = function(newDate){
    var difference = this.valueOf() - newDate.valueOf();
    var msInDay = 1000 * 60 * 60 * 24;
    var days = Math.floor(difference / msInDay);
    return days;
};