如何在moment.js中以以下格式获取当前月份的第一天和最后一天以及时间:
2016-09-01 00:00
我可以像这样获取当前日期和时间:moment().format('YYYY-MM-DD h:m')
,它将以上述格式输出。
但是我需要获取当月第一天和最后一天的日期和时间,有什么办法吗?
编辑:我的问题与 this 不同,因为它要求用户已经拥有的给定月份,而我要求 当前 月份以及要求其他所谓的“重复”中未提及的特定日期格式。
Thu Sep 01 2016 00:00:00 GMT+0100 (GMT Summer Time)
我想要我在问题中提到的格式
如果有人错过了对原始问题的评论,您可以使用内置方法(从 Moment 1.7 开始工作):
const startOfMonth = moment().startOf('month').format('YYYY-MM-DD hh:mm');
const endOfMonth = moment().endOf('month').format('YYYY-MM-DD hh:mm');
还有另一种方法可以做到这一点:
var begin = moment().format("YYYY-MM-01");
var end = moment().format("YYYY-MM-") + moment().daysInMonth();
你可以在没有 moment.js 的情况下做到这一点
一种在本机 Javascript 代码中执行此操作的方法:
var date = new Date(), y = date.getFullYear(), m = date.getMonth();
var firstDay = new Date(y, m, 1);
var lastDay = new Date(y, m + 1, 0);
firstDay = moment(firstDay).format(yourFormat);
lastDay = moment(lastDay).format(yourFormat);
Thu Sep 01 2016 00:00:00 GMT+0100 (GMT Summer Time)
输出,而不是我想要的格式:2016-09-01 00:00
startdate
和 enddate
?
时刻 startOf() 和 endOf() 是您正在寻找的答案。例如:-
moment().startOf('year'); // set to January 1st, 12:00 am this year
moment().startOf('month'); // set to the first of this month, 12:00 am
moment().startOf('week'); // set to the first day of this week, 12:00 am
moment().startOf('day'); // set to 12:00 am today
假设您正在使用日期范围选择器来检索日期。你可以做一些事情来得到你想要的。
$('#daterange-btn').daterangepicker({
ranges: {
'Today': [moment(), moment()],
'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
'Last 7 Days': [moment().subtract(6, 'days'), moment()],
'Last 30 Days': [moment().subtract(29, 'days'), moment()],
'This Month': [moment().startOf('month'), moment().endOf('month')],
'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
},
startDate: moment().subtract(29, 'days'),
endDate: moment()
}, function (start, end) {
alert( 'Date is between' + start.format('YYYY-MM-DD h:m') + 'and' + end.format('YYYY-MM-DD h:m')}
很简单,我们可以使用 daysInMonth() 和 endOf()
const firstDay = moment('2016-09-15 00:00', 'YYYY-MM-DD h:m').startOf('month').format('D')
const lastDay = moment('2016-09-15 00:00', 'YYYY-MM-DD h:m').endOf('month').format('D')
我遇到了一些问题,因为我不知道 moment().endOf()
会改变输入日期,所以我使用了这个解决方法。
让这个时刻 = 时刻();让 endOfMonth = moment(thisMoment).endOf('month');让 startOfMonth = moment(thisMoment).startOf('month');
当前月份的第一个和最后一个日期在moment.js中
console.log("current month first date");
const firstdate = moment().startOf('month').format('DD-MM-YYYY');
console.log(firstdate);
console.log("current month last date");
const lastdate=moment().endOf('month').format("DD-MM-YYYY");
console.log(lastdate);
console.log("current month first date");
const firstdate = moment().startOf('month').format('DD-MM-YYYY');
console.log(firstdate);
console.log("current month last date");
const lastdate=moment().endOf('month').format("DD-MM-YYYY");
console.log(lastdate);
// 这是在 MomentJS 中获取日期的最简单方法
不定期副业成功案例分享
moment(1, "DD");
将返回当月的第一天clone
?