获取产品给定日期

时间:2017-07-18 08:07:50

标签: javascript

如果我的格式如 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 。即使我遵循格式,我怎么能得到这个价值?

我的代码:

&#13;
&#13;
var d =new Date('07/21/2017 8:30 AM');
var yesterday = new Date(d.getTime() - (96*60*60));
alert(yesterday);
&#13;
&#13;
&#13;

5 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

&#13;
&#13;
var date = new Date('07/21/2017 8:30 AM'); // get
date.setDate(date.getDate() - 3);
console.log(date.toString());
&#13;
&#13;
&#13;

基本上,当天需要使用getDate()并使用setDate()将时间更新为过去的3天。

如果您想格式化日期,请查看moment.js,如@Robert所说。你可以使用类似的东西:

moment().format('MM/DD/YYYY, h:mm:ss a');

有关Date课程here和时刻文档here的更多信息。

答案 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

中简单地减去天数

&#13;
&#13;
var d =new Date('07/21/2017 8:30 AM');
d.setDate(d.getDate() - 3);
alert(d)
&#13;
&#13;
&#13;

答案 4 :(得分:0)

您需要在setDate类上使用Date函数来更改日期变量的日期部分

    var d =new Date('07/21/2017 8:30 AM');
    d.setDate(d.getDate() - 3);
    console.debug(d);