使用 JavaScript 或 jQuery 获取当月的第一个和最后一个日期

IT技术 javascript jquery date time
2021-02-10 13:41:35

正如标题所说,我一直在寻找一种方法来使用 JavaScript 或 jQuery 获取当月的第一个和最后一个日期,并将其格式化为:

例如,对于 11 月,它应该是:

var firstdate = '11/01/2012';
var lastdate = '11/30/2012';
2个回答

非常简单,不需要库:

var date = new Date();
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);

或者您可能更喜欢:

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);

编辑

一些浏览器会将两位数的年份视为 20 世纪,因此:

new Date(14, 0, 1);

给出 1 January, 1914. 为了避免这种情况,创建一个 Date 然后使用setFullYear设置它的值

var date = new Date();
date.setFullYear(14, 0, 1); // 1 January, 14
@Kush——当前月份是八月,所以它会返回八月的日期。如果您想要其他月份,请为该月的第一天创建一个日期并使用上述算法获取最后一个,例如 2014 年 11 月:var firstDay = new Date(2014,10,1); var lastDay = new Date(2014,11,0);
2021-03-13 13:41:35
正如@moozy 提出的问题,我正在寻找相同的: var firstdate = '11/01/2012'; var lastdate = '11/30/2012';
2021-03-25 13:41:35
对于像我这样想知道使用“December+1”和当月的“0”天来获取上个月最后一天的人来说,这一切都符合规范;developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
2021-03-26 13:41:35
在接受的答案中尝试使用代码,我得到 firstDay 为“Fri Aug 01 2014 00:00:00 GMT+0800 (SGT)”,lastDay 为“Sun Aug 31 2014 00:00:00 GMT+0800 (SGT)”当前月份这是不正确的答案。有什么改变吗?
2021-04-09 13:41:35
@Kush 你到底期待什么答案?
2021-04-10 13:41:35

我用 Datejs

这是第一天的警报:

var fd = Date.today().clearTime().moveToFirstDayOfMonth();
var firstday = fd.toString("MM/dd/yyyy");
alert(firstday);

这是最后一天:

var ld = Date.today().clearTime().moveToLastDayOfMonth();
var lastday = ld.toString("MM/dd/yyyy");
alert(lastday);