我需要找到从特定月份到目前为止的周数。
就像它在2013年11月(截至今天,2014年1月10日)一样,应该会有9周的时间。
有找到它的方法吗?
答案 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;
};