gpt4 book ai didi

javascript - Moment JS 给定月份的开始和结束

转载 作者:IT王子 更新时间:2023-10-29 02:47:54 26 4
gpt4 key购买 nike

我需要计算给定 year=2014 和 month=9(2014 年 9 月)的 JS 日期。

我试过这个:

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)

结束日期正确,但...为什么开始日期不正确?

最佳答案

那是因为endOf改变原始值。

相关引用:

Mutates the original moment by setting it to the end of a unit of time.

这是一个示例函数,可以为您提供所需的输出:

function getMonthDateRange(year, month) {
var moment = require('moment');

// month in moment is 0 based, so 9 is actually october, subtract 1 to compensate
// array is 'year', 'month', 'day', etc
var startDate = moment([year, month - 1]);

// Clone the value before .endOf()
var endDate = moment(startDate).endOf('month');

// just for demonstration:
console.log(startDate.toDate());
console.log(endDate.toDate());

// make sure to call toDate() for plain JavaScript date type
return { start: startDate, end: endDate };
}

引用资料:

关于javascript - Moment JS 给定月份的开始和结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26131003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com