首先,你这里的日期'20140711' 不是标准的日期格式,js不认识,想要使用 new Date() 得到日期,可以把 '20140711' 格式化成js能认识的格式。如: 2014-07-11
先加转换成日期类型,然后加1天,再格式化成你要的格式。
// @param sDate yyyyMMdd格式的日期字符串// @param days 要加上的天数
function afterNDays(sDate, days) {
if(!sDate) return ''
// 默认1天
days = days || 1
// 如果 sDate 的这个格式是不变的,那么可以使用一些方法得到 yyyy-MM-dd 这样的格式
// 得到年部分
var y = sDate.substring(0, 4)
// 得到月部分
var m = sDate.substring(4, 6)
// 得到日部分
var d = sDate.substring(6, 8)
var dDate = new Date(y + '-' + m + '-' + d)
dDate.setDate(dDate.getDate() + 1)
// 如果想得到原来的格式,那么需要手动设置格式
y = dDate.getFullYear()
m = dDate.getMonth() + 1
d = dDate.getDate()
// 返回 yyyyMMdd格式
return y + (m < 10 ? '0' + m : m) + (d < 10 ? '0' + d : d)
}
调用方法:
afterNDays('20140711', 1) // 得到 20140712js date加一天是什么?一起来看看吧:
js date加一天是一个轻量的 JavaScript 时间日期处理库。与 Moment.js 的 API 设计保持一致,随着moment的包逐渐变大,官方已经决定未来停止维护相关moment.js库,并且官网也推荐使用dayjs库,因为它有很多优势。
其主要特性如下:
1、与 Moment.js 相同的 API 和用法
2、不可变数据(Immutable)
3、支持链式操作(Chainable)
4、只有 2kb 大小(一些高级用法以扩展的形式存在,可按需加载)
5、全浏览器兼容
6、强大的国际化支持(I18n)
代码示例:
1、以当前日期new date()为例,也可以将例中new date()换成任意date对象
var d = new Date() d.setTime(d.getTime()+24*60*60*1000) var s = d.getFullYear()+"-" + (d.getMonth()+1) + "-" + d.getDate()
2、获取今天的0时0分0秒
var startDate= new Date(new Date().toLocaleDateString()) //Wed March 09 2022 00:00:00 GMT+0800 (中国标准时间)
3、获取一个月前的日期
var lastM =new Date(new Date().setMonth(new Date().getMonth()-1))//Wed Feb 09 2022 13:38:08 GMT+0800 (中国标准时间)
4、获取一个月前的0时0分0秒
var lastM_start =new Date(new Date(new Date().toLocaleDateString()).setMonth(new Date().getMonth()-1)) //Wed Feb 09 2022 00:00:00 GMT+0800 (中国标准时间)
5、获取前一天的日期
var yesterday = new Date(new Date().setDate(new Date().getDate()-1))//Wed March 08 2022 13:41:39 GMT+0800 (中国标准时间)
6、获取今天的23时59分59秒
var endDate = new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60*1000-1)//Wed March 09 2022 23:59:59 GMT+0800 (中国标准时间)
7、获取昨天的23时59分59秒
new Date().setDate(new Date().getDate()-1)).toLocaleDateString()).getTime()+24*60*60*1000-1)//Wed March 08 2022 23:59:59 GMT+0800 (中国标准时间)