如果我的格式如 07/21/2017 8:30 AM ,如何在给定日期前3天正确获取日期,这是因为我使用了Eonasdan DateTime Picker的格式。但是当我试着减去它3天时,我得到了 2017年7月21日星期五08:24:14 GMT + 0800(中国标准时间)作为我的价值,但我想要的输出应该是相同的格式,如< strong> 07/21/2017 8:30 。即使我遵循格式,我怎么能得到这个价值?
我的代码:
var d =new Date('07/21/2017 8:30 AM');
var yesterday = new Date(d.getTime() - (96*60*60));
alert(yesterday);
&#13;
答案 0 :(得分:1)
这应该可以解决问题:
var date = new Date('07/21/2017 8:30 AM'); // get
date.setDate(date.getDate() - 3);
console.log(date.toString());
&#13;
基本上,当天需要使用getDate()
并使用setDate()
将时间更新为过去的3天。
如果您想格式化日期,请查看moment.js,如@Robert所说。你可以使用类似的东西:
moment().format('MM/DD/YYYY, h:mm:ss a');
答案 1 :(得分:1)
function formatDate(d) {
month = '' + (d.getMonth() + 1),
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
date = [month, day, year].join('/');
var hours = d.getHours();
var minutes = d.getMinutes();
var ampm = hours >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
minutes = minutes < 10 ? '0'+minutes : minutes;
var strTime = hours + ':' + minutes + ' ' + ampm;
return date+" "+strTime;
}
var d =new Date('07/21/2017 8:30 AM');
d.setDate(d.getDate() - 3);
var yesterday = formatDate(d);
alert(yesterday);
这应该有效
答案 2 :(得分:0)
尝试使用此
var d = new Date();
var d =new Date('07/21/2017 8:30 AM');
var yesterday = d;
yesterday.setDate(d.getDate()-3);
alert(yesterday);
答案 3 :(得分:0)
您可以从日期E.g d.getDate() - 3
var d =new Date('07/21/2017 8:30 AM');
d.setDate(d.getDate() - 3);
alert(d)
&#13;
答案 4 :(得分:0)
您需要在setDate
类上使用Date
函数来更改日期变量的日期部分
var d =new Date('07/21/2017 8:30 AM');
d.setDate(d.getDate() - 3);
console.debug(d);