web-dev-qa-db-ja.com

JavaScript DateDiff

DateDiff関数に問題があります。 2つの日付/時刻の違いを理解しようとしています。私はこの投稿を読みました( Javascriptで日付の差を計算する最良の方法は何ですか )。また、このチュートリアル( http://www.javascriptkit.com/javatutors/datedifference。 shtml )ですが、取得できないようです。

これが私が成功せずに仕事を始めようとしたものです。誰かが私が何をしているのか、そして私がこれをどのように簡略化できるのか教えてくれませんか?コード化されているようです...?

//Set the two dates
var currentTime = new Date();
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var year = currentTime.getFullYear();
var currDate = month + "/" + day + "/" + year;
var iniremDate = "8/10/2012";

//Show the dates subtracted
document.write('DateDiff is: ' + currDate - iniremDate);

//Try this function...
function DateDiff(date1, date2) {
    return date1.getTime() - date2.getTime();
}

//Print the results of DateDiff
document.write (DateDiff(iniremDate, currDate);
8
Frank G.

最初の試行は、最初に加算を実行し、次に減算を実行します。とにかく文字列を減算できないため、NaNが得られます。

2番目のtrryには、終了_)_がありません。それとは別に、文字列に対してgetTimeを呼び出しています。 new Date(...).getTime()を使用する必要があります。日付を減算すると、ミリ秒単位で結果が得られることに注意してください。あなたは丸一日/時間/などを取り除くことによってそれをフォーマットすることができます。

5
pimvdb

ここで実用的な例が必要な人には、負の値(既に渡された日付)または正の値(日付が来る)で日付の差分を日ごとに通知する単純なDateDiff exがあります。

編集:私はこのスクリプトを更新しましたので、それはあなたのために脚の仕事をして、結果をこの場合-10に変換します、それは日付が過ぎたことを意味します。 currDateとiniPastedDateに独自の日付を入力すれば、問題ありません。

//Set the two dates
var currentTime   = new Date()
var currDate      = currentTime.getMonth() + 1 + "/" + currentTime.getDate() + "/" + currentTime.getFullYear() //Todays Date - implement your own date here.
var iniPastedDate = "8/7/2012" //PassedDate - Implement your own date here.

//currDate = 8/17/12 and iniPastedDate = 8/7/12

function DateDiff(date1, date2) {
    var datediff = date1.getTime() - date2.getTime(); //store the getTime diff - or +
    return (datediff / (24*60*60*1000)); //Convert values to -/+ days and return value      
}

//Write out the returning value should be using this example equal -10 which means 
//it has passed by ten days. If its positive the date is coming +10.    
document.write (DateDiff(new Date(iniPastedDate),new Date(currDate))); //Print the results...
11
Frank G.
function setDateWeek(setDay){
    var d = new Date();
    d.setDate(d.getDate() - setDay); // <-- add this
    var curr_date = d.getDate();
    var curr_month = d.getMonth() + 1;
    var curr_year = d.getFullYear();
    return curr_date + "-" + curr_month + "-" + curr_year;
}


setDateWeek(1);
2
AKHIL

JQueryまたはその他のサードパーティライブラリを含める必要はありません。

タイトルタグに入力日付形式を指定します。

HTML:

< script type="text/javascript" src="http://services.iperfect.net/js/IP_generalLib.js">

JavaScript関数を使用:

IP_dateDiff(strDate1,strDate2,strDateFormat,debug[true/false])

alert(IP_dateDiff('11-12-2014','12-12-2014','DD-MM-YYYY',false));

IP_dateDiff関数は日数を返します。

0
Neeraj Dhekale