Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MomentJS-如何从日期获取上个月的最后一天?_Javascript_Date_Momentjs - Fatal编程技术网

Javascript MomentJS-如何从日期获取上个月的最后一天?

Javascript MomentJS-如何从日期获取上个月的最后一天?,javascript,date,momentjs,Javascript,Date,Momentjs,我试图使用以下方法获取上个月的最后一天: var dateFrom = moment(dateFrom).subtract(1, 'months').format('YYYY-MM-DD'); 其中: dateFrom = 2014-11-30 但使用后 subtract(1, 'months') 它返回日期 DATE_FROM: "2014-10-30" 但10月的最后一天是31号 我怎样才能解决我的问题 非常感谢您的帮助。只需在您的通话中添加一个endOf('month'): v

我试图使用以下方法获取上个月的最后一天:

 var dateFrom = moment(dateFrom).subtract(1, 'months').format('YYYY-MM-DD');
其中:

dateFrom = 2014-11-30 
但使用后

subtract(1, 'months')
它返回日期

DATE_FROM: "2014-10-30"
但10月的最后一天是31号

我怎样才能解决我的问题

非常感谢您的帮助。

只需在您的通话中添加一个
endOf('month')

var dateFrom=moment(dateFrom).subtract(1,'months').endOf('month').format('YYYY-MM-DD')


更简单的解决方案是使用
moment.date(0)
.date()
函数取当前月份的1到n天,但是,传递零或负数将产生上个月的日期

const monthyear = moment().format('YYYY-MM')
const firstDay = moment(monthyear + "-01").format("YYYY-MM-DD");
// Subtract 1 day to get the end of the previous month
const dateTo = moment(firstDay).subtract('1', 'days').format("YYYY-MM-DD");
例如,如果当前日期为2月3日:

var_date=moment();//2018-02-03(当日)
var_date2=moment().date(0)//2018-01-31(本月初减去1天)
var_date3=moment().日期(4)//2018-02-04(当月第4天)
var_date4=moment().date(-4)//2018-01-27(本月初减去5天)
console.log(_date.format(“YYYY-MM-DD”);
console.log(_date2.format(“YYYY-MM-DD”);
console.log(_date3.format(“YYYY-MM-DD”);
console.log(_date4.format(“YYYY-MM-DD”)

上个月的第一个日期和从当前日期算起的上个月的最后一个日期。日期的格式随时间而变化。(DD-MM-YYYY)


你可以得到一个月的第一天,然后减去一天得到上个月的最后一天

const monthyear = moment().format('YYYY-MM')
const firstDay = moment(monthyear + "-01").format("YYYY-MM-DD");
// Subtract 1 day to get the end of the previous month
const dateTo = moment(firstDay).subtract('1', 'days').format("YYYY-MM-DD");

有关更多信息,请查看文档中的。另一种方法是var dateFrom=moment(dateFrom).startOf('month')。减去(1,'days');-)你可能想这样做:
moment(dateFrom).subtract(1,'month').daysInMonth('D')
不知道这个答案会给提前5年回答的答案增加什么。更不用说,OP希望从特定日期开始计数,而不是从当前日期开始计数,并希望输出为YYYY-MM-DD格式。