首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >给定月份的时刻JS开始和结束

给定月份的时刻JS开始和结束
EN

Stack Overflow用户
提问于 2014-10-01 06:12:23
回答 10查看 184.6K关注 0票数 107

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

我试过这个:

代码语言:javascript
复制
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());

两个日志都显示:

代码语言:javascript
复制
Tue Sep 30 2014 23:59:59 GMT+0200 (CEST)
Tue Sep 30 2014 23:59:59 GMT+0200 (CEST)

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

EN

回答 10

Stack Overflow用户

发布于 2017-11-13 23:34:52

您可以直接将其用于该月的结束日期或开始日期

代码语言:javascript
复制
new moment().startOf('month').format("YYYY-DD-MM");
new moment().endOf("month").format("YYYY-DD-MM");

您可以通过定义新格式来更改格式

票数 27
EN

Stack Overflow用户

发布于 2014-10-01 06:18:26

当你使用.endOf()时,你是在改变被调用的对象,所以startDate变成了Sep 30

您应该使用.clone()来制作它的副本,而不是更改它

代码语言:javascript
复制
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) 
票数 17
EN

Stack Overflow用户

发布于 2018-10-08 19:45:15

尝试以下代码:

代码语言:javascript
复制
const moment=require('moment');
console.log("startDate=>",moment().startOf('month').format("YYYY-DD-MM"));
console.log("endDate=>",moment().endOf('month').format("YYYY-DD-MM"));
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26131003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档