Javascript 日期为每月31天

Javascript 日期为每月31天,javascript,datetime,Javascript,Datetime,在处理日期差异时,当我使用下面的代码时,函数假定所有月份都有31天。例如,如果我将3月1日减去2月28日,则差值为4天。有没有什么简单的方法来改变这个。任何帮助都将不胜感激 function myFunction() { var sysdt = "02/28/2013"; var year = sysdt.substring(6,10); var mon = sysdt.substring(0,2); var date = sysdt.substring(3,5); var n = Date.

在处理日期差异时,当我使用下面的代码时,函数假定所有月份都有31天。例如,如果我将3月1日减去2月28日,则差值为4天。有没有什么简单的方法来改变这个。任何帮助都将不胜感激

function myFunction()
{

var sysdt = "02/28/2013";
var year = sysdt.substring(6,10);
var mon = sysdt.substring(0,2);
var date = sysdt.substring(3,5);
var n = Date.UTC(year,mon,date);



var userdt = "03/01/2013"
var yr = userdt.substring(6,10);
var mn = userdt.substring(0,2);
var dd = userdt.substring(3,5);
var n1 = Date.UTC(yr,mn,dd);


var x = document.getElementById("demo");
x.innerHTML=(n1-n)/(1000*24*60*60);

}

这将以毫秒为单位显示两个日期之间的差异

var diff = Math.abs(date1 - date2);
举个例子,那就是

var diff = Math.abs(new Date() - compareDate);
您需要确保compareDate是有效的日期对象

像这样的东西可能对你有用

var diff = Math.abs(new Date() - new Date(dateStr.replace(/-/g,'/')));
i、 e.将“2011-02-07 15:13:06”转换为新日期('2011/02/07 15:13:06'),这是日期构造函数可以理解的格式

你可以这样减法--


您的代码实际上是从4月1日减去3月1日,因为JavaScript日期中的月份是以0为基础的

var sysdt = "02/28/2013";
var date1 = new Date(sysdt);

var userdt = "03/01/2013"
var date2 = new Date(userdt);

var days = (date2-date1)/(1000*24*60*60);
或者从代码中的月份中减去1

var sysdt = "02/28/2013";
var year = sysdt.substring(6,10);
var mon = sysdt.substring(0,2)-1; // months are from 0 to 11
var date = sysdt.substring(3,5);
var n = Date.UTC(year,mon,date);



var userdt = "03/01/2013"
var yr = userdt.substring(6,10);
var mn = userdt.substring(0,2)-1; // months are from 0 to 11
var dd = userdt.substring(3,5);
var n1 = Date.UTC(yr,mn,dd);

var days = (n1-n)/(1000*24*60*60);

对于日期操作,您最好使用诸如DatesHanks之类的库,因为在使用DatesHanks获得快速帮助时存在许多陷阱。
var sysdt = "02/28/2013";
var year = sysdt.substring(6,10);
var mon = sysdt.substring(0,2)-1; // months are from 0 to 11
var date = sysdt.substring(3,5);
var n = Date.UTC(year,mon,date);



var userdt = "03/01/2013"
var yr = userdt.substring(6,10);
var mn = userdt.substring(0,2)-1; // months are from 0 to 11
var dd = userdt.substring(3,5);
var n1 = Date.UTC(yr,mn,dd);

var days = (n1-n)/(1000*24*60*60);