0

日付の違いで作業しているときに、以下のコードを使用しているとき、関数はすべての月が 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);

}
4

3 に答える 3

0

JavaScriptの日付の月は0から始まるため、コードは実際には4月1日から3月1日を引いています。

于 2013-03-15T11:56:08.657 に答える
0

これにより、ミリ秒単位で2つの日付の差が得られます

var diff = Math.abs(date1 - date2);

たとえば、

var diff = Math.abs(new Date() - compareDate);

compareDate が有効な Date オブジェクトであることを確認する必要があります。

このようなものはおそらくあなたのために働くでしょう

var diff = Math.abs(new Date() - new Date(dateStr.replace(/-/g,'/')));

つまり、"2011-02-07 15:13:06" を new Date('2011/02/07 15:13:06') に変換します。これは、Date コンストラクターが理解できる形式です。

U はこのように減算できます--

var d1 = new Date(); //"now"
var d2 = new Date("2011/02/01")  // some date
var diff = Math.abs(d1-d2);  // difference in milliseconds
var days = diff*24*60*60*1000;
于 2013-03-15T11:53:16.603 に答える
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);
于 2013-03-15T12:11:10.707 に答える