1

datepicker2つの日付を取得するためにjqueryを使用しています。私の場合、この形式で日付を取得する必要がありますd-M-yoracleフォーマットせずに値をデータベースに挿入できるようにするために使用しています。問題は、2 つの日付の間の月を計算する必要があることです。例: 1-Oct-13- 30-Oct-16.

jsで日付を取得する方法は次のとおりです。

LastAssimDatePicker = (function() {
                        $( "#lastAssimilationDate" ).datepicker({
                            yearRange: "-20:+100",
                            changeMonth: true,
                            changeYear: true,
                            dateFormat: "d-M-y"
                        });
                    }),

LastAssimDateOverPicker = (function() {
                        $( "#lastAssimilationDateOver" ).datepicker({
                            yearRange: "-20:+100",
                            changeMonth: true,
                            changeYear: true,
                            dateFormat: "d-M-y"
                        });
                    }),

上記の日付は2 variables-lastAssimilationDateおよびLastAssimDateOver

問題は、2 つの日付の間の月を計算する方法を実際に見つけることができず、すでに約 2 時間を失っていることです。簡単な解決策があると確信していますが、初心者としてはそれを見つけることができません。ここに同様のトピックがあることは知っていますが、それを機能させることができないか、私の問題に適合しません。

4

3 に答える 3

4

作業デモ http://jsfiddle.net/w54pq/ または、両方の月を含めたい場合は、このデモを試してください: http://jsfiddle.net/yQyJq/

これはあなたのニーズに合うでしょう。それには多くのバージョンがあります。

必要に応じてさまざまな組み合わせが可能であることに注意してください。このコードを自由に試してみてください。

古いリンクのうちの1つは私の古い返信です:

お役に立てれば:)

コード

$('.start,.end').datepicker();

$('.hulk').click(function () {
    var sDate = $('.start').val();
    var nDate = $('.end').val();

    var startdate = new Date(sDate);
    var enddate = new Date(nDate);

    enddate.setDate(enddate.getDate() - startdate.getDate());
    alert(monthDiff(startdate,enddate));
});


function monthDiff(d1, d2) {
    var months;
    months = (d2.getFullYear() - d1.getFullYear()) * 12;
    months -= d1.getMonth() + 1;
    months += d2.getMonth();
    return months <= 0 ? 0 : months;
}

ワーキングショット

ここに画像の説明を入力

于 2013-10-10T08:22:24.910 に答える
3

あなたがフォーマットを変更することになっていないと言ったので、私はあなたのための解決策を持っています.

@TJ Crowder's Answerの助けを借りて、これを行いました

d1 = new Date($( "#lastAssimilationDate" ).val());
d2 = new Date($( "#lastAssimilationDateOver").val());
alert(monthDiff(d1, d2));

このJSFiddleを確認してください

Nan飛び出しているかどうかはわかりませんが、違いを見ることができます。

ここに画像の説明を入力

于 2013-10-10T08:32:55.260 に答える
3
    function calcualteMonthYr(){
    var fromDate =new Date($('#txtFrom').val()); //datepicker (text fields)
    var toDate = new Date($('#txtTo').val()); // datepicker

     var months;
        months = (toDate.getFullYear() - fromDate.getFullYear()) * 12;
        months += toDate.getMonth();
        if (toDate.getDate() < fromDate.getDate())
        {
            months--;
        }
    $('#txtTimePeriod2').val(months);
}
// it also consider dates so you would get exact months ..
于 2015-08-29T04:25:31.717 に答える