我需要计算给定year=2014和month=9的JS日期(2014年9月)。
我试过这个:
var moment = require('moment');
var startDate = moment( year+'-'+month+'-'+01 + ' 00:00:00' );
var endDate = startDate.endOf('month');
console.log(startDate.toDate());
console.log(endDate.toDate());
两个日志都显示:
Tue Sep 30 2014 23:59:59 GMT+0200 (CEST)
Tue Sep 30 2014 23:59:59 GMT+0200 (CEST)
结束日期是正确的,但是...为什么开始日期不是?
发布于 2017-11-13 23:34:52
您可以直接将其用于该月的结束日期或开始日期
new moment().startOf('month').format("YYYY-DD-MM");
new moment().endOf("month").format("YYYY-DD-MM");
您可以通过定义新格式来更改格式
发布于 2014-10-01 06:18:26
当你使用.endOf()
时,你是在改变被调用的对象,所以startDate
变成了Sep 30
您应该使用.clone()
来制作它的副本,而不是更改它
var startDate = moment(year + '-' + month + '-' + 01 + ' 00:00:00');
var endDate = startDate.clone().endOf('month');
console.log(startDate.toDate());
console.log(endDate.toDate());
Mon Sep 01 2014 00:00:00 GMT+0700 (ICT)
Tue Sep 30 2014 23:59:59 GMT+0700 (ICT)
发布于 2018-10-08 19:45:15
尝试以下代码:
const moment=require('moment');
console.log("startDate=>",moment().startOf('month').format("YYYY-DD-MM"));
console.log("endDate=>",moment().endOf('month').format("YYYY-DD-MM"));
https://stackoverflow.com/questions/26131003
复制相似问题