我有这个脚本,
var today = new Date();
var dd = today.getDate();
var ddd = today.getDate()-1;
var dddd = today.getDate()-2;
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10){
dd='0'+dd
}
if(mm<10){
mm='0'+mm
}
if(ddd<10){
ddd='0'+ddd
}
var today = dd+'/'+mm+'/'+yyyy;
var d2 = ddd+'/'+mm+'/'+yyyy;
var d3 = dddd+'/'+mm+'/'+yyyy;
有了这个,我获得了当天的最后 3 天,但在这种情况下,今天是 02,如果我休息两天,我获得 0,但在这种情况下我想要上个月的最后一天,怎么办?
这是我的fiddle https://fiddle.jshell.net/qm160xeh/
这是当月的第一天new Date(now.getFullYear(), now.getMonth(), 1)
要获取上个月的最后一天,请创建 1 天前的日期:new Date(now.getFullYear(), now.getMonth(), 1 - 1)
.
要获取上个月的第一天,我们应该从月份部分减去 1new Date(now.getFullYear(), now.getMonth() - 1, 1)
但如果当前月份是 1 月 (0),上个月是 12 月 (11),则会出现问题。因此,我包装了月份表达式,创建了一个循环,因此它始终返回正值。
var now = new Date();
var prevMonthLastDate = new Date(now.getFullYear(), now.getMonth(), 0);
var prevMonthFirstDate = new Date(now.getFullYear() - (now.getMonth() > 0 ? 0 : 1), (now.getMonth() - 1 + 12) % 12, 1);
var formatDateComponent = function(dateComponent) {
return (dateComponent < 10 ? '0' : '') + dateComponent;
};
var formatDate = function(date) {
return formatDateComponent(date.getMonth() + 1) + '/' + formatDateComponent(date.getDate()) + '/' + date.getFullYear();
};
document.write(formatDate(prevMonthFirstDate) + ' - ' + formatDate(prevMonthLastDate));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)