0

この質問がインターネット上で何千回も聞かれることは知っていますが、私は新人で Javascript の機能についてあまり知りません。2つの日付を比較したい。入力はフォーム = "2011-jan-21" です

これが私が思いついたものです、助けてください!早急に対応させていただきますので、よろしくお願いいたします。

   function compareDates() {
            var startDate=document.getElementById("startDate").value;
            var endDate = document.getElementById("endDate").value;
                months = {'jan': '01', 'feb': '02', 'mar': '03', 'apr': '04', 'may': '05',
                'jun': '06', 'jul': '07', 'aug': '08', 'sep': '09', 'oct': '10', 'nov': '11',
                'dec': '12'};
                split = startDate.split('-');
                var newStartDate = [split[2], months[split[1]], split[0]].join(',');

                split = endDate.split('-');
                var newEndDate = [split[2], months[split[1]], split[0]].join(',');

                var myDate=new Date();
                myDate.setFullYear(startDate);
                console.log(newStartDate);

                var myDateEnd=new Date();
                myDateEnd.setFullYear(endDate);

             if (myDate < myDateEnd) {
                alert ("Error !");
             }
        }


<form method="POST" id="myForm" onsubmit="compareDates()">
        <input id="startDate" />
        <input id="endDate" />
        <input type="Submit" />

    </form>
4

3 に答える 3

1

Date文字列をコンストラクタに渡すだけです。はるかに簡単です。

var startDate = new Date(document.getElementById("startDate").value);
var endDate = new Date(document.getElementById("endDate").value);

これで、好きなように操作できる本格的なDateインスタンスが 2 つできました。

function compare()
{
    var startDate = new Date(document.getElementById("startDate").value);
    var endDate = new Date(document.getElementById("endDate").value);

    if (startDate.getTime() > endDate.getTime())
    {
        alert ("Error !");
    }
}
于 2012-08-09T19:55:19.553 に答える
0

それらを比較するだけであれば、年、月、日のフィールドはすでに最重要から最下位の順序になっているので、日付としてエンコードすることすら気にしないでしょう。年、月(数値形式、一貫性が保たれている限り、0-originまたは1-originはOK)、および日を指定された順序で解析できる場合は、整数を計算できますi = (year * 10000)+(month * 100)+day

両方の日付がそのように変換されている場合、通常の等式および順序付け演算子(==、<、> =など)を期待どおりに使用できます。

于 2012-08-09T19:58:35.033 に答える
0

あなたが使用することができます:

if (myDate.getTime() < myDateEnd.getTime()) 
{
    alert ("Error !");
}
于 2012-08-09T21:00:14.600 に答える