如何在当前date前30天获得?
我有一个开始日历input框和一个结束日历input框。 我们希望在当前date之前30天的默认开始日历input框和结束日历input框是当前date。 这是我的datevariables。
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();
结束date将是类似var enddate = startdate - 30;
显然这是行不通的。
所以如果当前date是2011年12月30日,我想要开始date为2011年12月1日。
编辑:我的问题被回答…有点。 Date.today(); 和Date.today()。add(-30); 工作,但我需要格式为2012年1月13日。不是周一2012年1月13日10:48:56 GMT -055(美国东部时间)。 任何帮助?
尝试使用优秀的Datejs JavaScriptdate库 (原始不再保留,所以你可能会对这个主动维护的叉感兴趣):
Date.today().add(-30).days(); // or... Date.today().add({days:-30});
[编辑]
另请参阅优秀的Moment.js JavaScriptdate库 :
moment().subtract(30, 'days'); // or... moment().add(-30, 'days');
尝试这个
var today = new Date() var priorDate = new Date().setDate(today.getDate()-30)
正如@Neel所指出的,这个方法以JavaScript时间戳格式返回。 要将其转换回date对象,您需要将上述内容传递给新的Date对象; new Date(priorDate)
。
startDate = new Date(today.getTime() - 30*24*60*60*1000);
.getTime()
方法返回一个标准的JS时间戳(自1970年1月1日以来的毫秒),你可以使用常规的math运算,直接反馈给Date对象。
这是你的一个难看的解决scheme:
var date = new Date(new Date().setDate(new Date().getDate() - 30));
我使用date.js。 它很容易处理,照顾所有的闰年的肮脏。
我会更喜欢js
startDate = moment().subtract(30, 'days').format('LL') // January 29, 2015 endDate = moment().format('LL'); // February 28, 2015