1. 输入年份和第几周,格式如2019-8,输出为一周的时间区间

image.png
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.content{
border: 1px solid lightblue;
padding: 30px;
line-height: 50px;
}
input{
height: 30px;
padding-left: 10px;
}
</style>
</head>
<body>
<div class="content">
请输入年份和第几周,格式如2019-8,输出为一周的时间区间:
<button id="button" onclick="change()">转化</button>
<br>
<input type="text" placeholder="请输入" id="inputs"><br>
<input type="text" placeholder="输出时间区间" id="output">
</div>
<script>
function change() {
var inputs = document.getElementById('inputs').value.toString(); // var input = '2018-8';
var output = document.getElementById('output');
var year = inputs.substring(0, 4);
var week = inputs.substring(5, inputs.length);
var monday = formatDate(getXDate(year, week, 1));
var sunday = formatDate(getXDate(year, week, 0));
output.value = monday + ' ~ ' + sunday;
// return monday + '~' + sunday;
}
function formatDate(date) {
var myyear = date.getFullYear();
var mymonth = date.getMonth() + 1;
var myweekday = date.getDate();
if (mymonth < 10) {
mymonth = "0" + mymonth;
}
if (myweekday < 10) {
myweekday = "0" + myweekday;
}
return (myyear + "-" + mymonth + "-" + myweekday);
}
function getXDate(year, weeks, weekDay) {
weekDay %= 7;
var date = new Date(year, "0", "1");
var time = date.getTime();
weekDay == 0 ? time += weeks * 7 * 24 * 3600000 : time += (weeks - 1) * 7 * 24 * 3600000; // 以周日为一周的结束
date.setTime(time);
return getNextDate(date, weekDay);
}
function getNextDate(nowDate, weekDay) {
var day = nowDate.getDay();
var time = nowDate.getTime();
var sub = weekDay - day;
time += sub * 24 * 3600000;
nowDate.setTime(time);
return nowDate;
}
</script>
</body>
</html>
网友评论