当前位置:  开发笔记 > 编程语言 > 正文

从JavaScript的当前日期获取上个月的第一个日期

如何解决《从JavaScript的当前日期获取上个月的第一个日期》经验,为你挑选了4个好方法。

请任何人共享代码,以便在JavaScript中查找上个月的当前日期的第一个日期.例如,如果当前日期是2009年1月25日,那么我应该将2008年12月1日作为结果.



1> annakata..:

直截了当,使用日期方法:

  var x = new Date();
  x.setDate(1);
  x.setMonth(x.getMonth()-1);


另外,你应该写x.setMonth(x.getMonth() - 1); 否则你将得到一个未定义的引用
当一天变成31岁时,这种情况不起作用,就像2014-07-31那样
不幸的是,在晚期JavaScript版本中不推荐使用'with'关键字:(来源:http://stackoverflow.com/questions/61552/are-there-legitimate-uses-for-javascripts-with-statement

2> Reza Ghorban..:

最简单的方法是:

var x = new Date();
x.setDate(0); // 0 will result in the last day of the previous month
x.setDate(1); // 1 will result in the first day of the month



3> REA_ANDREW..:

检查此链接:

http://blog.dansnetwork.com/2008/09/18/javascript-date-object-adding-and-subtracting-months/

编辑:我鼓了一个例子:

Date.prototype.SubtractMonth = function(numberOfMonths) {
var d = this;
d.setMonth(d.getMonth() - numberOfMonths);
d.setDate(1);
return d;
}

$(document).ready(function() {
    var d = new Date();
    alert(d.SubtractMonth(1));
});

安德鲁



4> 小智..:

从一月到十二月移动年份更新

var prevMonth = function(dateObj) {
	var tempDateObj = new Date(dateObj);

	if(tempDateObj.getMonth) {
		tempDateObj.setMonth(tempDateObj.getMonth() - 1);
	} else {
		tempDateObj.setYear(tempDateObj.getYear() - 1);
		tempDateObj.setMonth(12);
	}

	return tempDateObj
};

var wrapper = document.getElementById('wrapper');

for(var i = 0; i < 12; i++) {
	var x = new Date();
  var prevDate = prevMonth(x.setMonth(i));
	var div = document.createElement('div');
  div.textContent = 
  "start month/year: " + i + "/" + x.getFullYear() +
  " --- prev month/year: " + prevDate.getMonth() +
  "/" + prevDate.getFullYear() +
  " --- locale prev date: " + prevDate.toLocaleDateString();
  wrapper.appendChild(div);
}
推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有