こんにちは私は日付と比較する単純なif文を持っていますが、実行されていませんが、デバッグしようとしましたが動作しません。時間if文が動作しない
dateFormat = "01/05/2099"
dateMissing = "25/11/2016"
if(dateFormat > dateMissing){
dateFormat = dateMissing;
}
こんにちは私は日付と比較する単純なif文を持っていますが、実行されていませんが、デバッグしようとしましたが動作しません。時間if文が動作しない
dateFormat = "01/05/2099"
dateMissing = "25/11/2016"
if(dateFormat > dateMissing){
dateFormat = dateMissing;
}
あなたは文字列を比較しています。差異が見つかるまで左から右へ順番に文字を比較し、その差を結果として使用します。 "2"
は>
"0"
であるため、その文字列は他の文字列よりも大きくなります。
日付を解析して結果を比較する必要があります。 はnew Date(dateFormat)
などを使用しないでください。これらの文字列は、JavaScriptのDate
オブジェクトで処理される形式ではありません。あなた自身を解析する(直接、または図書館を介して)。例えば。
var dateFormat = "01/05/2099";
var dateMissing = "25/11/2016";
var parts, dt1, dt2;
var parts = dateFormat.split("/");
var dt1 = new Date(+parts[2], +parts[1] - 1, +parts[0]);
parts = dateMissing.split("/");
var dt2 = new Date(+parts[2], +parts[1] - 1, +parts[0]);
if (dt1 > dt2) {
dateFormat = dateMissing;
}
console.log("dateFormat:", dateFormat);
console.log("dt1", dt1.toString());
console.log("dt2", dt2.toString());
あなたは、単に日付を含む文字列を比較することはできません。まず、許容される形式(ミリ秒)に変換します。
var dateFormat = new Date("05/01/2099").getTime();
var dateMissing = new Date("11/25/2016").getTime();
次に、日付の比較を行うことができます。
"*あなたは*の文字列を単純に比較することはできません。* localeCompare *、例えば' '2099 -01-05'.localeCompare( '2016-11-25') '。;-) – RobG
日付または文字列? –
'DateFormat = new Date(" 01/05/2099 ")' –
@AlexMcMillan:いいえ、 'Date'はそのフォーマットを理解するために定義されていません。 –