8

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);
4

4 に答える 4

12

ここでの実用的な例が必要な場合は、単純な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...
于 2012-08-17T10:22:15.300 に答える
5

あなたの最初の試みは最初に足し算をし、次に引き算をします。とにかく文字列を減算することはできないので、が得られNaNます。

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

于 2012-08-17T10:03:15.333 に答える
2
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);
于 2014-04-21T07:13:02.733 に答える
-2

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関数は日数を返します。

于 2015-09-02T07:39:32.677 に答える