1.获取天数, 如昨天,今天,近1星期,近14天
function GetDateStr(AddDayCount) {
var dd = new Date();
dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
var y = dd.getFullYear();
var m = dd.getMonth()+1;//获取当前月份的日期
var d = dd.getDate();
//判断 月
if(m < 10){
m = "0" + m;
}else{
在JavaScript中,获取今天的日期以及过去日期是常见的需求,尤其在数据分析、日志记录或时间相关的Web应用中。本文将详细解析如何通过JavaScript实现获取指定天数、月份和年前的日期。
我们来看获取过去天数的函数`GetDateStr(AddDayCount)`。这个函数接受一个参数`AddDayCount`,它表示要回溯或前进的天数。函数内部首先创建了一个新的`Date`对象`dd`,然后通过`setDate()`方法将日期设置为当前日期加上`AddDayCount`天。接着,分别获取年份`y`、月份`m`和日期`d`。由于JavaScript的`getMonth()`方法返回的月份是从0开始的,因此需要加1得到实际的月份。为了避免月份和日期为一位数时显示不完整,如01月和01日,需要进行零填充。如果月份或日期小于10,则在前面添加一个0。
代码如下:
```javascript
function GetDateStr(AddDayCount) {
var dd = new Date();
dd.setDate(dd.getDate() + AddDayCount);
var y = dd.getFullYear();
var m = dd.getMonth() + 1;
var d = dd.getDate();
if (m < 10) {
m = "0" + m;
} else {
m = m;
}
if (d < 10) {
d = "0" + d;
} else {
d = d;
}
return y + "-" + m + "-" + d;
}
```
接下来,我们有`GetMonthStr(AddMonthCount)`函数,用于获取过去几个月的日期。这个函数的工作原理与`GetDateStr()`类似,只是使用了`setMonth()`方法来改变月份。同样,注意月份的处理,因为`setMonth()`会自动处理闰年的情况。
```javascript
function GetMonthStr(AddMonthCount) {
var dd = new Date();
dd.setMonth(dd.getMonth() + AddMonthCount);
var y = dd.getFullYear();
var m = dd.getMonth() + 1;
var d = dd.getDate();
if (m < 10) {
m = "0" + m;
} else {
m = m;
}
if (d < 10) {
d = "0" + d;
} else {
d = d;
}
return y + "-" + m + "-" + d;
}
```
`GetYearStr(AddYearCount)`函数用于获取过去几年的日期。它通过`setYear()`方法设置年份,其余部分与前面的函数相同。
```javascript
function GetYearStr(AddYearCount) {
var dd = new Date();
dd.setYear(dd.getFullYear() + AddYearCount);
var y = dd.getFullYear();
var m = dd.getMonth() + 1;
var d = dd.getDate();
if (m < 10) {
m = "0" + m;
} else {
m = m;
}
if (d < 10) {
d = "0" + d;
} else {
d = d;
}
return y + "-" + m + "-" + d;
}
```
这些函数可以帮助开发者轻松地获取过去或未来的日期,以满足各种时间相关的编程需求。例如,你可以用它们来展示最近一周、一月或一年的数据,或者在日历应用中切换日期等。
需要注意的是,JavaScript的日期处理在不同的浏览器中可能存在差异,特别是在处理时区和闰年问题时。为了确保代码在所有环境下都能正确工作,建议使用`moment.js`或`date-fns`等成熟的日期库,它们提供了更强大、更一致的日期操作功能。不过,对于简单的日期处理,上述的JavaScript原生方法已经足够。