嗨我有一個簡單的if語句比較日期,但它沒有運行,我已經嘗試調試它,但不起作用。時間如果語句不工作
dateFormat = "01/05/2099"
dateMissing = "25/11/2016"
if(dateFormat > dateMissing){
dateFormat = dateMissing;
}
嗨我有一個簡單的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'未定義爲理解該格式。 –