362

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

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

var firstdate = '11/01/2012';
var lastdate = '11/30/2012';
4

2 回答 2

990

非常简单,不需要库:

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

给出 1914 年 1 月 1 日。为避免这种情况,请创建一个 Date 然后使用setFullYear设置其值:

var date = new Date();
date.setFullYear(14, 0, 1); // 1 January, 14
于 2012-11-26T20:32:57.857 回答
21

我用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);
于 2012-11-26T20:10:55.327 回答