使用当前日期生成一周的所有日期,还显示周一的周开始日期和周日的周末
Posted
技术标签:
【中文标题】使用当前日期生成一周的所有日期,还显示周一的周开始日期和周日的周末【英文标题】:Generate all dates of a week using current date also show week starting date on Monday and weekends on Sunday 【发布时间】:2016-04-19 16:21:37 【问题描述】:使用当前日期生成一周中的所有日期,并使用 javascript 或 AngularJS 在星期一和星期日显示星期的开始日期。
-
用户可以输入任何日期(任何年月)
每周应该从星期一开始,到星期日结束
它应该适用于所有年份和月份
例如:选定日期(2016 年 1 月 1 日星期五)(默认应选择当前日期)强文本
它应该显示 28/12/2015(星期一) 29/12/2015(星期二) 30/12/2015(星期三) 31/12/2015(星期四) 2016 年 1 月 1 日(星期五) 2/1/2016(星期六) 2016 年 3 月 1 日(星期日)
$('#datepicker').datepicker().datepicker("setDate", new Date());
window.onload = lastDate;
function lastDate()
lDate = document.getElementById('datepicker').value;
var myDate = new Date(lDate).toLocaleDateString('en-US');
var xDate = moment(lDate).format("D-MMM-YYYY");
var curr = new Date(myDate);
var sun = curr.getDate() - curr.getDay();
var sat = sun + 6;
var mon = sun + 1;
var tue = sun + 2;
var wed = sun + 3;
var thu = sun + 4;
var fri = sun + 5;
var sun1 = sun + 7;
var last = sun1;
sunday = new Date(curr.setDate(sun)).toLocaleDateString('en-US');
monday = new Date(curr.setDate(mon)).toLocaleDateString('en-US');
tuesday = new Date(curr.setDate(tue)).toLocaleDateString('en-US');
wednesday = new Date(curr.setDate(wed)).toLocaleDateString('en-US');
thursday = new Date(curr.setDate(thu)).toLocaleDateString('en-US');
friday = new Date(curr.setDate(fri)).toLocaleDateString('en-US');
saturday = new Date(curr.setDate(sat)).toLocaleDateString('en-US');
sunday1 = new Date(curr.setDate(sun1)).toLocaleDateString('en-US');
lastday1 = new Date(curr.setDate(sun1)).toLocaleDateString('en-US');
document.getElementById("day1").innerhtml = sunday;
document.getElementById("day2").innerHTML = monday;
document.getElementById("day3").innerHTML = tuesday;
document.getElementById("day4").innerHTML = wednesday;
document.getElementById("day5").innerHTML = thursday;
document.getElementById("day6").innerHTML = friday;
document.getElementById("day7").innerHTML = saturday;
document.getElementById("day1").innerHTML = sunday1;
<body>
<div class="container">
<h3>This week dates </h3>
<input id="datepicker" class="currentDate" onchange="lastDate()">/input>
</div>
<div Class="container-fluid well">
<div class="form-inline">
<div class="form-control">
<span class="label label-default">Monday</span>
<span id="day2"> </span>
</div>
<div class="form-control">
<span class="label label-default">Tuesday</span>
<span id="day3"> </span>
</div>
<div class="form-control">
<span class="label label-default">Wednesday</span>
<span id="day4"> </span>
</div>
<div class="form-control">
<span class="label label-default">Thursday</span>
<span id="day5"> </span>
</div>
<div class="form-control ">
<span class="label label-default">Friday</span>
<span id="day6"> </span>
</div>
<div class="form-control">
<span class="label label-default">Saturday</span>
<span id="day7"> </span>
</div>
<div class="form-control">
<span class="label label-default">Sunday</span>
<span id="day1"></span>
</div>
</div>
</div>
</body>
【问题讨论】:
你能把你写的代码贴出来吗? 你有什么问题? 欢迎来到 SO Vikas。看看Date.prototype.getDay(),尝试编写一些代码,如果遇到困难请告诉我们。如果您不需要进一步的答案,您可以回答自己的问题或将其删除。 这里是我的代码... 几天不工作(例如:2016 年 1 月 2 日)link to my code 您似乎在使用toLocaleDateString('en-US');
,而问题似乎需要en-GB
。这也依赖于对Intl object 的支持,因此在不支持Intl object 的浏览器中会失败(Safari)。通过转换为字符串来处理日期,然后解析字符串是可怕的,使用类似new Date(+date)
的东西,其中 date 是一个 Date 对象。
【参考方案1】:
var curr = new Date;
var Sunday = new Date(curr.setDate(curr.getDate() - curr.getDay()));
var Monday = new Date(curr.setDate(curr.getDate() - curr.getDay()+1));
var Tuesday = new Date(curr.setDate(curr.getDate() - curr.getDay()+2));
var Wednesday = new Date(curr.setDate(curr.getDate() - curr.getDay()+3));
var Thursday = new Date(curr.setDate(curr.getDate() - curr.getDay()+4));
var Friday = new Date(curr.setDate(curr.getDate() - curr.getDay()+5));
var Saturday = new Date(curr.setDate(curr.getDate() - curr.getDay()+6));
console.log(Sunday);
console.log(Monday);
console.log(Tuesday);
console.log(Wednesday);
console.log(Thursday);
console.log(Friday);
console.log(Saturday);
【讨论】:
以上是关于使用当前日期生成一周的所有日期,还显示周一的周开始日期和周日的周末的主要内容,如果未能解决你的问题,请参考以下文章