根据Javascript中的周数获取日期周期的简单方法
Simple way to get date period according to week number in Javascript
全部:
有人能给我一个简单的方法,根据周数计算开始UTC时间和结束UTC时间吗?例如,现在是第29周,从2016-07-18(星期一)到2016-07-24(星期日)。在这种情况下,我需要知道开始/结束日期是什么,以及它们的UTC时间是多少
感谢
使用"javascript从周数计算日期"answers"javascript-从当前日期获取一周的第一天"的答案组合,同时使用get/set函数的UTC变体,您可以得出:
function getDateOfISOWeek(w, y) {
var simple = new Date(Date.UTC(y, 0, 1 + (w - 1) * 7));
var dow = simple.getUTCDay();
var ISOweekStart = simple;
if (dow <= 4)
ISOweekStart.setUTCDate(simple.getUTCDate() - simple.getUTCDay() + 1);
else
ISOweekStart.setUTCDate(simple.getUTCDate() + 8 - simple.getUTCDay());
return ISOweekStart;
}
function getEndOfISOWeek(d) {
var endOfISOWeek = new Date(d.getTime());
endOfISOWeek.setUTCDate(endOfISOWeek.getUTCDate() + 6); // six days
endOfISOWeek.setUTCHours(23);
endOfISOWeek.setUTCMinutes(59);
endOfISOWeek.setUTCSeconds(59);
return endOfISOWeek;
}
var startOfWeek = getDateOfISOWeek(29,2016);
var endOfWeek = getEndOfISOWeek(startOfWeek);
console.log(startOfWeek.toUTCString(), endOfWeek.toUTCString());
上面代码的JSFiddle
只需依靠1月1日。
示例:
function getBounds(weekNum, year) { // getBounds(weekNum [, year])
var week = 604800000; // 1000 * 60 * 60 * 24 * 7
year || (year = (new Date()).getFullYear()); // Defaults to current year.
var d = Date.parse(year+'-1-1');
var wEnd = d + week * weekNum; // We count weeks from 1.
return [wEnd - week, wEnd];
};
console.log(getBounds(29)); // [ 1468537200000, 1469142000000 ] (during 2016)
console.log(getBounds(29, 2016)); // [ 1468537200000, 1469142000000 ] (forever)
相关文章:
- 简单的javascript在Shopify中不起作用
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 如何制作简单的php'在Javascript中的foreach等价物
- JQuery:向多个匹配结果添加换行符的最简单方法
- AJAX简单错误.XMLHttpRequest无法加载http://localhost/mpl/getPage.php.
- Moment/Jquery-一个简单时间线的愚蠢问题
- 组件生命周期问题/无法处理未定义的问题
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 简单类测试未通过
- 简单地将拆分变量添加到对象中
- 通过javascript操作图像,非常简单
- 问题用moment JS制作一个简单的时间表
- 简单的ES6承诺问题-交换解决和拒绝参数
- 带有计数器、缩略图、进度条和淡入淡出效果的简单jQuery幻灯片
- 简单的JS函数.需要对变量进行澄清
- 简单的交换程序无法使用javascript
- 如何只使用特定的表行构建简单的手风琴
- 我怎么能让流星简单模式中的一个字段等于一个js变量,并且仍然让用户填写简单模式的其余部分
- 节点.js简单的 Web 服务器请求生命周期
- 根据Javascript中的周数获取日期周期的简单方法