js获取日期问题

weixin_42434031 2018-07-10 01:48:09
想用js或jquery实现获取本周工作日的日期(2018.07.09-2018.07.13),能帮忙写个吗?我写的有点麻烦
...全文
143 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34823434 2018-07-12
  • 打赏
  • 举报
回复
var arr = new Array();
var firstTime = new Date(new Date().getTime() - (new Date().getDay()-1)*1000 * 60 * 60 * 24);
for(i = 0; i<5;i++){
arr[i]= new Date(firstTime.getTime() + 1000 * 60 * 60 * 24*i);
arr[i].nian = arr[i].getFullYear();
arr[i].yue = arr[i].getMonth();
arr[i].ri = arr[i].getDate();
console.log(arr[i].nian+'-'+arr[i].yue+'-'+arr[i].ri);
}

天际的海浪 2018-07-10
  • 打赏
  • 举报
回复
上面是以周日为一周的开始。
要改成中国人的习惯以周一为一周的开始。

d.setDate(d.getDate()-d.getDay()+1);
改成
d.setDate(d.getDate()-(d.getDay()+6)%7);
自渡96 2018-07-10
  • 打赏
  • 举报
回复
引用 9 楼 jslang 的回复:
var d = new Date();
d.setDate(d.getDate()-d.getDay()+1);
alert(d.toLocaleString().split(" ")[0]);
d.setDate(d.getDate()+4);
alert(d.toLocaleString().split(" ")[0]);

厉害!
天际的海浪 2018-07-10
  • 打赏
  • 举报
回复
var d = new Date();
d.setDate(d.getDate()-d.getDay()+1);
alert(d.toLocaleString().split(" ")[0]);
d.setDate(d.getDate()+4);
alert(d.toLocaleString().split(" ")[0]);
meidusha_yan 2018-07-10
  • 打赏
  • 举报
回复
请楼主忽略,刚刚看到之前有提到过这个方法很笨。
meidusha_yan 2018-07-10
  • 打赏
  • 举报
回复
下面的代码是以当前为周一为示例,通过 当前时间毫秒数+1天(1000*60*60*24)来得到周二的日期,以此类推,不知是否符合你的要求
<script type="text/javascript">
var date = new Date();
var day = date.getDay();
if(day==1){
alert(date.toLocaleString());
alert(new Date(date.getTime()+1000*60*60*24).toLocaleString());
alert(new Date(date.getTime()+2*1000*60*60*24).toLocaleString());
alert(new Date(date.getTime()+3*1000*60*60*24).toLocaleString());
alert(new Date(date.getTime()+4*1000*60*60*24).toLocaleString());
alert(new Date(date.getTime()+5*1000*60*60*24).toLocaleString());
alert(new Date(date.getTime()+6*1000*60*60*24).toLocaleString());
}
Date.prototype.toLocaleString = function() {
return this.getFullYear() + "/" + (this.getMonth() + 1) + "/" + this.getDate() + "/ " + this.getHours() + ":" + this.getMinutes() + ":" + this.getSeconds();
};
</script>
___紫菜 2018-07-10
  • 打赏
  • 举报
回复
引用 3 楼 weixin_42434031 的回复:
[quote=引用 2 楼 u013116426 的回复:]
获取当天星期几啊,自己然后做对应的周一/周五加减

我就是这么做的,然后觉得这个办法好笨。。。[/quote]笨吗?可是我也想不出什么简单的方法了,或许你可以优化代码
丰云 2018-07-10
  • 打赏
  • 举报
回复
上面参数写错了,改正如下:

// 获取指定日期所在周的七天的日期
function getWeekDay(s) {
var dateStringReg = /^\d{4}[/-]\d{1,2}[/-]\d{1,2}$/;
if (s.match(dateStringReg)) {
var year = parseInt(s.substr(0, 4), 10);
var month = parseInt(s.substr(5, 2), 10);
var date = parseInt(s.substr(8, 2), 10);
var dt = new Date(year, month - 1, date);
var day = dt.getDay();
var today = day !== 0 ? day : 7;
var re = [];
for (var i = 1; i < 8; i++) {
var t = new Date(year, month - 1, date + i - today);
re.push(t.getFullYear() + '-' + (t.getMonth() + 1) + '-' + t.getDate());
}
return re;
} else {
throw new Error('dateString should be like "yyyy-mm-dd" or "yyyy/mm/dd"');
}
}
丰云 2018-07-10
  • 打赏
  • 举报
回复

// 获取指定日期所在周的七天的日期
function getWeekDay(str) {
var dateStringReg = /^\d{4}[/-]\d{1,2}[/-]\d{1,2}$/;
if (str.match(dateStringReg)) {
var year = parseInt(s.substr(0, 4), 10);
var month = parseInt(s.substr(5, 2), 10);
var date = parseInt(s.substr(8, 2), 10);
var dt = new Date(year, month - 1, date);
var day = dt.getDay();
var today = day !== 0 ? day : 7;
var re = [];
for (var i = 1; i < 8; i++) {
var t = new Date(year, month - 1, date + i - today);
re.push(t.getFullYear() + '-' + (t.getMonth() + 1) + '-' + t.getDate());
}
return re;
} else {
throw new Error('dateString should be like "yyyy-mm-dd" or "yyyy/mm/dd"');
}
}
weixin_42434031 2018-07-10
  • 打赏
  • 举报
回复
引用 2 楼 u013116426 的回复:
获取当天星期几啊,自己然后做对应的周一/周五加减

我就是这么做的,然后觉得这个办法好笨。。。
___紫菜 2018-07-10
  • 打赏
  • 举报
回复
获取当天星期几啊,自己然后做对应的周一/周五加减
nihaoye000 2018-07-10
  • 打赏
  • 举报
回复
如果是项目上的用date.js吧,如果是练习就自己写一下,不难

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧