我的问题是通过js选择时间区域,但是网上很多都是上个月的1号到上个月的30号。而我的需求是需要把当前时间想过去推30*24小时,也就是说时间随着当前的日期改变而改变的。
moment.js官方文档 github : https://github.com/moment/moment/
重点api
moment(nowDay).add(-20, 'days') 向过去推20天的日期
代码如下:
<!DOCTYPE html>
<html>
<head>
<title>测试</title>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="moment.js"></script>
<script src="../My97DatePicker/WdatePicker.js"></script>
<script type="text/javascript">
function lastDay(nowDay) {
return moment(nowDay).add(-1, 'days').format('YYYY-MM-DD');
}
function lastMonth(nowDay) {
var month1 = moment(nowDay).get('month');
var year1 = moment(nowDay).get('year');
var monthStr;
var lastmonth;
if (month1 < 9 && month1 > 0) {
monthStr = year1 + '-0' + month1;
var number1 = moment(monthStr , "YYYY-MM").daysInMonth();
lastmonth = moment(nowDay).add(-number1, 'days').format('YYYY-MM-DD');
}
else if(month1 === 0) {
monthStr = year1-1 + '-' + 12;
if(day1 > 9) {
monthStr = monthStr + '-' + day1;
} else {
monthStr = monthStr + '-0' + day1;
}
lastmonth = moment(monthStr).format('YYYY-MM-DD');
} else {
monthStr = year1 + '-' + month1;
var number1 = moment(monthStr , "YYYY-MM").daysInMonth();
lastmonth = moment(nowDay).add(-number1, 'days').format('YYYY-MM-DD');
}
return lastmonth;
}
function quarter(nowDay){
var year1 = moment(nowDay).get('year');
var quarter = moment(nowDay).quarter();
var quarterStart;
var quarterEnd;
if(quarter === 1) {
quarterStart = year1 + "-01-01";
quarterEnd = year1 + "-03-31";
} else if(quarter === 2) {
quarterStart = year1 + "-04-01";
quarterEnd = year1 + "-06-30";
} else if(quarter === 3) {
quarterStart = year1 + "-07-01";
quarterEnd = year1 + "-09-30";
} else {
quarterStart = year1 + "-10-01";
quarterEnd = year1 + "-12-31";
}
console.log(quarterStart);
console.log(quarterEnd);
}
function lastYear(nowDay) {
var yue2 = moment(nowDay).month(1).daysInMonth();
var yearNum;
if(yue2 === 28) {
yearNum = 365;
} else {
yearNum = 366;
}
var lastYear = moment(nowDay).add(-1, 'years').format('YYYY-MM-DD');
return lastYear;
}
console.log(lastDay(new Date()));
console.log(lastMonth(new Date()));
quarter(new Date());
console.log(lastYear(new Date()));
</script>
</head>
<body>
<div>
<input type="date" name="start" id="start" οnclick="WdatePicker()">
<input type="date" name="ehd" id="end" οnclick="WdatePicker()">
</div>
</body>
</html>