【发布时间】:2017-03-29 23:00:55
【问题描述】:
我找到了一个 javascript 和一个 php script 来获取基于全年的当前周。这很棒,但我有点困惑。我想知道是否是本月的第 1、2、3、4 周而不是全年。我该怎么办?
javascript
/**
* Returns the week number for this date. dowOffset is the day of week the week
* "starts" on for your locale - it can be from 0 to 6. If dowOffset is 1 (Monday),
* the week returned is the ISO 8601 week number.
* @param int dowOffset
* @return int
*/
Date.prototype.getWeek = function (dowOffset) {
/*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.meanfreepath.com */
dowOffset = typeof(dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero
var newYear = new Date(this.getFullYear(),0,1);
var day = newYear.getDay() - dowOffset; //the day of week the year begins on
day = (day >= 0 ? day : day + 7);
var daynum = Math.floor((this.getTime() - newYear.getTime() -
(this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1;
var weeknum;
//if the year starts before the middle of a week
if(day < 4) {
weeknum = Math.floor((daynum+day-1)/7) + 1;
if(weeknum > 52) {
nYear = new Date(this.getFullYear() + 1,0,1);
nday = nYear.getDay() - dowOffset;
nday = nday >= 0 ? nday : nday + 7;
/*if the next year starts before the middle of
the week, it is week #1 of that year*/
weeknum = nday < 4 ? 1 : 53;
}
}
else {
weeknum = Math.floor((daynum+day-1)/7);
}
return weeknum;
};
用法
var mydate = new Date(2011,2,3); // month number starts from 0
// or like this
var mydate = new Date('March 3, 2011');
alert(mydate.getWeek());
【问题讨论】:
-
你有没有尝试过?我建议使用这两个脚本并至少尝试解决您的问题,而不是让别人为您编写代码。
-
@Tony:现在尝试一下。
-
@Tony:如果你能删除你的反对票,那就太好了。
-
在您编辑您的初始帖子之前,我无法做到。我会建议一个简单的编辑或什么?我已经尝试取消我的反对票。 “您上次对这个问题投票是在 35 分钟前。除非编辑此问题,否则您的投票现在已锁定。”
-
如果您有示例代码,例如在您对自己问题的回答中,为什么不将代码放在问题中?
标签: javascript php date