2017-12-06 7 views
0

日付の2つの文字列を比較したいと思います。形式は次のとおりです。 (例:2017年4月5日) 現在の日付よりも優れているかどうかを確認したい。 (2017年12月6日)これは難しいことなしに可能でしょうか?Javascriptは2つの文字列を特定の形式で比較します

d1 = "5 april 2017" 
d2 = "5 december 2017" 

if (d1<d2){ 
//do this 
} 
+2

何を試しましたか? –

答えて

1

まず、日付文字列からdate個のオブジェクトを作成する必要があります。日付の比較のために

d1 = "5 april 2017" 
 
d2 = "5 december 2017" 
 
d3 = "05/04/2017"; 
 
d4 = "05/12/2017" 
 

 
compareDates(d1, d2); 
 
compareDates(d2, d1); 
 
compareDates(d3, d4); 
 
compareDates(d4, d3); 
 

 
function compareDates(date1, date2) 
 
{ 
 
    if((new Date(date1) > new Date(date2))) 
 
    console.log('Is ' + date1 + ' greater than ' + date2 + '? '+ '= ' + true); 
 
    else 
 
    console.log('Is ' + date1 + ' greater than ' + date2 + '? '+ '= ' + false); 
 
}

+0

実際に私の月が英語以外の言語であれば、それは動作しませんので、英語でも番号でも翻訳する必要があります。 – LovePoke

+0

@LovePokeあなたの質問は何ですか?あなたの現在の質問から立っているので、私の答えはうまくいくでしょう。その言語が他の言語であれば、ローカリゼーションを考慮する必要があり、異なるボールゲームです。なぜ特定の日付形式にコミットしないのですか? –

+0

ええ、申し訳ありませんが、ローカリゼーションが問題になるとは思わなかった^^ "次に、特定の形式に変換してgetTime()を使用する必要があります。私が前に述べたように、それぞれの日付を現在の日付と比較してください – LovePoke

0

、それはミリ秒または秒でそれらを取得することが最善です。 JavaScriptを使用すると、日付を新しいDateオブジェクトに渡してから、getTime関数を呼び出してミリ秒単位で取得できます。

var d1 = new Date("5 april 2017").getTime(); 
var d2 = new Date("5 december 2017").getTime(); 

if (d1 < d2) { 
    //do this 
} 
+0

組み込みパーサーを使用することはお勧めできません。[* Date.parseはなぜ間違った結果?*](https://stackoverflow.com/questions/2587345/why-does-date-parse-give-in正しい結果) – RobG

関連する問題