为了账号安全,请及时绑定邮箱和手机立即绑定

用JavaScript计算月中的最后一天

用JavaScript计算月中的最后一天

心有法竹 2019-07-30 11:39:20
用JavaScript计算月中的最后一天如果您提供0的dayValue在Date.setFullYear你上一个月的最后一天:d = new Date(); d.setFullYear(2008, 11, 0); //  Sun Nov 30 2008在mozilla中提到了这种行为。这是一个可靠的跨浏览器功能还是我应该考虑其他方法?
查看完整描述

3 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

var month = 0; // January

var d = new Date(2008, month + 1, 0);

alert(d); // last day in January


IE 6: Thu Jan 31 00:00:00 CST 2008

IE 7: Thu Jan 31 00:00:00 CST 2008

IE 8: Beta 2: Thu Jan 31 00:00:00 CST 2008

Opera 8.54: Thu, 31 Jan 2008 00:00:00 GMT-0600

Opera 9.27: Thu, 31 Jan 2008 00:00:00 GMT-0600

Opera 9.60: Thu Jan 31 2008 00:00:00 GMT-0600

Firefox 2.0.0.17: Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)

Firefox 3.0.3: Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)

Google Chrome 0.2.149.30: Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)

Safari for Windows 3.1.2: Thu Jan 31 2008 00:00:00 GMT-0600 (Canada Central Standard Time)

产出差异是由于实施的差异toString(),而不是因为日期不同。


当然,仅仅因为上面提到的浏览器使用0作为上个月的最后一天并不意味着他们将继续这样做,或者未列出的浏览器会这样做,但它使人们相信它应该工作的可信度每个浏览器都一样。


查看完整回答
反对 回复 2019-07-30
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

我会在下个月的第一天使用中间日期,并返回前一天的日期:

int_d = new Date(2008, 11+1,1);d = new Date(int_d - 1);


查看完整回答
反对 回复 2019-07-30
?
SMILET

TA贡献1796条经验 获得超4个赞

我觉得这对我来说是最好的解决方案。让Date对象为您计算它。

var today = new Date();var lastDayOfMonth = new Date(today.getFullYear(), today.getMonth()+1, 0);

将day参数设置为0表示比上个月的最后一天月份的第一天少一天。


查看完整回答
反对 回复 2019-07-30
  • 3 回答
  • 0 关注
  • 494 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号