【发布时间】:2016-06-01 11:38:37
【问题描述】:
我正在构建一个函数,我将根据用户作为参数发送给它的内容动态生成日期。我需要为上周、本周、上个月、本月、过去 7 天、过去 30 天等案例创建日期。由于我要从和到日期发送到数据库,因此我需要将它们格式化为yyyy-mm-dd。我的问题是如何获得上周结束和上周开始的日期,本周开始的日期,以及当我从当前日期减去 7 或 30 的情况下的正确日期。
这是我目前的代码,但它只适用于当月的日期:
function myDate(day){
var date = new Date();
var dd = date.getDate() - day;
var mm = date.getMonth()+1; //January is 0!
var yyyy = date.getFullYear();
if(dd<10){
dd='0'+dd
}
if(mm<10){
mm='0'+mm
}
var newDate = yyyy+'-'+mm+'-'+dd;
return newDate;
}
var today = myDate(0);
var yesterday = myDate(1);
var sevenDaysAgo = myDate(7);
var thirtyDaysAgo = myDate(30);
更新代码:
如果有人需要,这就是我使用 moment.js 的方式:
var date = moment().format("YYYY-MM-DD");
var yesterday = moment().subtract(1, 'day').format('YYYY-MM-DD');
var sevenDaysAgo = moment().subtract(7, 'day').format('YYYY-MM-DD');
var thirtyDaysAgo = moment().subtract(30, 'day').format('YYYY-MM-DD');
var lastWeekStart = moment(date).weekday(-6).format('YYYY-MM-DD');
var lastWeekEnd = moment(date).weekday(1).format('YYYY-MM-DD');
var thisWeekStart = moment(date).weekday(1).format('YYYY-MM-DD');
var startOfMonth = moment().startOf('month').format('YYYY-MM-DD');
var startOfLastMonth = moment().subtract(1, 'month').startOf('month').format('YYYY-MM-DD');
var endOfLastMonth = moment().subtract(1, 'month').endOf('month').format('YYYY-MM-DD');
【问题讨论】:
标签: javascript datetime momentjs