片刻js获得当月的第一天和最后一天

use*_*492 98 javascript date momentjs

如何以moment.js中的以下格式获取当月的第一天和最后一天以及时间:

2016-09-01 00:00

我可以得到这样的当前日期和时间: moment().format('YYYY-MM-DD h:m')将以上述格式输出.

但是我需要获取当月第一天和最后一天的日期和时间,无论如何都要这样做?

编辑: 我的问题与问题不同,因为它询问用户已经拥有的给定月份,而我要求当前月份,同时要求提供另一个未提及的日期的特定格式,即所谓的"重复" ".

Ali*_*ani 277

如果有人错过了对原始问题的评论,您可以使用内置方法(从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');
Run Code Online (Sandbox Code Playgroud)

  • `moment(1, "DD");` 将返回当月的第一天 (4认同)
  • 为什么我们需要“克隆”? (4认同)
  • 谢谢@ user3574492没什么大不了的,感谢您的澄清-如果您认为此答案是最佳答案,那么我认为可以将其更改为接受的答案,即使该答案稍后发布。 (2认同)

Ako*_*oya 32

还有另一种方法可以做到这一点:

var begin = moment().format("YYYY-MM-01");
var end = moment().format("YYYY-MM-") + moment().daysInMonth();
Run Code Online (Sandbox Code Playgroud)


Kev*_*jat 27

你可以在没有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);
Run Code Online (Sandbox Code Playgroud)

  • "你可以在没有时刻的情况下做到这一点."*使用moment.js格式化日期...* (14认同)

小智 9

假设您使用日期范围选择器来检索日期.你可以做些什么来得到你想要的东西.

$('#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')}
Run Code Online (Sandbox Code Playgroud)


Sum*_*tra 8

当下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
Run Code Online (Sandbox Code Playgroud)