19

我正在尝试在 JavaScript 中获取上周日期,但没有时间。

例如,10-02-2012, 而不是10-02-12 13:34:56 GMT

有一个简单的解决方案吗?

谢谢!

编辑:

我正在尝试使这个动态化,以便生成的变量总是比当前日期早一周。这是我为计算今天变量所做的工作,如果这有帮助或可以使用!

var currentTime = new Date();
var month = currentTime.getMonth() + 1
var day = currentTime.getDate();
var year = currentTime.getFullYear();
var today = month + "-" + day + "-" + year;
alert(today)
4

6 回答 6

47

我更喜欢这样的东西​</p>

function getLastWeek() {
  var today = new Date();
  var lastWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 7);
  return lastWeek;
}

var lastWeek = getLastWeek();
var lastWeekMonth = lastWeek.getMonth() + 1;
var lastWeekDay = lastWeek.getDate();
var lastWeekYear = lastWeek.getFullYear();

var lastWeekDisplay = lastWeekMonth + "/" + lastWeekDay + "/" + lastWeekYear;
var lastWeekDisplayPadded = ("00" + lastWeekMonth.toString()).slice(-2) + "/" + ("00" + lastWeekDay.toString()).slice(-2) + "/" + ("0000" + lastWeekYear.toString()).slice(-4);

console.log(lastWeekDisplay);
console.log(lastWeekDisplayPadded);

如果您使用的是 jQuery UI,您可以这样做而不是手动步骤来构建字符串

var lastWeekDisplay = $.datepicker.formatDate('mm/dd/yy', getLastWeek());

或者今天

var todayDisplay = $.datepicker.formatDate('mm/dd/yy', new Date());
于 2012-10-09T18:21:12.757 回答
21
 var firstDay = new Date("2009/10/02");
 var previousweek= new Date(firstDay.getTime() - 7 * 24 * 60 * 60 * 1000);

看看这个链接。它将有所帮助:- http://code.google.com/p/datejs/

于 2012-10-09T18:18:16.090 回答
13

如果不提及Moment.js ,我们就无法回答 JavaScript 日期问题。

moment().subtract('days', 7).format('MM-DD-YYYY')
于 2013-11-07T04:46:54.900 回答
10

可能没有外部依赖

    new Date().setDate(new Date().getDate() - 7)
于 2018-11-23T11:51:12.367 回答
0

如果你真的想从像 10-02-12 13:34:56 GMT 这样的完整时间戳创建它,你可能想要这样做:

var time = '10-02-12 13:34:56 GMT';
document.write(time.substr(0,7));
于 2012-10-09T18:17:54.877 回答
0

使用此代码减去任何天数,因为我选择了 9 它将给出包括今天在内的最后 10 天的结果

var date = new Date();
    var day=date.getDate();
    var month=date.getMonth() + 1;
    var year=date.getFullYear();
    var startDate=day+"/"+month+"/"+year;
    var dayBeforeNineDays=moment().subtract(9, 'days').format('DD/MM/YYYY');
    startDate=dayBeforeNineDays;
    var endDate=day+"/"+month+"/"+year;
于 2019-03-15T04:59:20.183 回答