我有一个开始日历输入框和一个结束日历输入框。我们希望默认值在当前日期之前30天开始日历输入框,并且结束日历输入框为当前日期。这是我的约会对象。
var today = new Date(),
dd = today.getDate(),
mm = today.getMonth(),
yyyy = today.getFullYear(),
month = ["January", "February", "March",
"April", "May", "June", "July", "August",
"September", "October" "November", "December"],
startdate = month[mm] + ", " + yyyy.toString();
结束日期类似于var enddate = startdate - 30;
显然这不起作用。
因此,如果当前日期是2011年12月30日,我希望开始日期为2011年12月1日。
编辑:我的问题得到了回答......有点儿。Date.today();
和Date.today().add(-30);
工作,但我需要January 13, 2012
格式的日期。不是Fri Jan 13 2012 10:48:56 GMT -055 (EST)
。有什么帮助吗?
更多编辑:截至撰写本文时,它是2018年。只需使用Moment.js即可。这是最好的。
答案 0 :(得分:122)
试试这个
var today = new Date()
var priorDate = new Date().setDate(today.getDate()-30)
如@Neel所述,此方法以Javascript时间戳格式返回。要将其转换回日期对象,您需要将上面的内容传递给新的Date对象; new Date(priorDate)
。
答案 1 :(得分:119)
尝试使用优秀的Datejs JavaScript date library(不再保留原文,因此您可能会对this actively maintained fork感兴趣):
Date.today().add(-30).days(); // or...
Date.today().add({days:-30});
<强> [编辑] 强>
另见优秀的Moment.js JavaScript date library:
moment().subtract(30, 'days'); // or...
moment().add(-30, 'days');
答案 2 :(得分:70)
这是一个丑陋的解决方案:
var date = new Date(new Date().setDate(new Date().getDate() - 30));
答案 3 :(得分:34)
startDate = new Date(today.getTime() - 30*24*60*60*1000);
.getTime()
方法返回一个标准的JS时间戳(自1970年1月1日以来的毫秒),您可以在其上使用常规数学运算,可以直接反馈给Date对象。
答案 4 :(得分:4)
简单的1个衬里 Vanilla Javascript 代码:
const priorByDays = new Date(Date.now() - days * 24 * 60 * 60 * 1000)
例如:
days = 7
假设当前的date = Fri Sep 18 2020 01:33:26 GMT+0530
结果将是:Fri Sep 11 2020 01:34:03 GMT+0530
它的优点是您可以操纵它以得到所需类型的结果
时间戳记:Date.now() - days * 24 * 60 * 60 * 1000
ISOString:new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString()
答案 5 :(得分:3)
let today = new Date()
let last30Days = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 30)
last30Days
将在日期对象中
答案 6 :(得分:2)
JavaScript无需任何外部库即可进行处理。
var today = new Date();
var dateLimit = new Date(new Date().setDate(today.getDate() - 30));
document.write(today + "<br/>" + dateLimit)
答案 7 :(得分:1)
我使用date.js。它可以轻松处理这一问题并处理所有闰年的肮脏。
答案 8 :(得分:1)
我更喜欢时刻js
startDate = moment().subtract(30, 'days').format('LL') // January 29, 2015
endDate = moment().format('LL'); // February 28, 2015
答案 9 :(得分:0)
容易
let days=30;
this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000);
ISOFormat吗?
let days=30;
this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString();
答案 10 :(得分:0)
这是ES6版本
let date = new Date()
let newDate = new Date(date.setDate(date.getDate()-30))
console.log(newDate.getMonth()+1 + '/' + newDate.getDate() + '/' + newDate.getFullYear() )
答案 11 :(得分:0)
您可以使用Node JS中的moment通过1行代码简单地做到这一点。 :)
let lastOneMonthDate = moment().subtract(30,"days").utc().toISOString()
不想使用UTC格式,EASIER:P
let lastOneMonthDate = moment().subtract(30,"days").toISOString()
答案 12 :(得分:0)
从今天开始获取下一个30天
0.000000Hello
0.000000Hello
0.000000Hello
0.000000Hello
4.0000004.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.0000000.000000Hello
0.000000Hello
0.000000Hello
0.000000Hello
[(8, 0), (0, 0), (0, 0), (0, 0), ]
[(4, -4), (0, 0), (0, 0), (0, 0), ]
[(0, 0), (0, 0), (0, 0), (0, 0), ]
[(4, 4), (0, 0), (0, 0), (0, 0), ]
0.000000Hello
0.000000Hello
0.000000Hello
0.000000Hello
4.0000004.0000004.0000004.0000004.0000004.0000004.0000004.0000004.0000004.0000004.0000004.0000004.0000004.0000004.0000004.0000000.000000Hello
0.000000Hello
0.000000Hello
0.000000Hello
[(1, 1), (1, 1), (1, 1), (1, 1), ]
[(0.0625, -0.0625), (0.0625, -0.0625), (0.0625, -0.0625), (0.0625, -0.0625), ]
[(0.0625, -0.0625), (0.0625, -0.0625), (0.0625, -0.0625), (0.0625, -0.0625), ]
[(0.0625, -0.0625), (0.0625, -0.0625), (0.0625, -0.0625), (0.0625, -0.0625), ]
立即获取最近30天的表单
let now = new Date()
console.log(now)
let next30days = new Date(now.setDate(now.getDate() + 30))
console.log(next30days)
答案 13 :(得分:0)
如果您不愿意使用momentjs,可以使用以下方法:
let x = new Date()
x.toISOString(x.setDate(x.getDate())).slice(0, 10)
基本上,它获取当前日期(当前月份日期的数值),然后设置该值。然后将其转换为ISO格式,从中我可以截取纯数字日期(即2019-09-23)
希望它可以帮助某人。
答案 14 :(得分:0)
使用moment.js
let startDate = moment().subtract(30, "days").format('YYYY-MM-DD'); //2021-05-18
let endDate = moment().format('YYYY-MM-DD'); //2021-06-17