我得到一個SQL日期 - NOT日期時間 - 對象推入我的Javascript代碼,我需要看看它是否在今天之前。這裏是我的代碼(相關部分):Javascript日期比較行爲不如預期
todaysDate = new Date();
todaysDate.setHours(0,0,0,0);
var date = Date.parse(row[3]);
// date.setHours(0,0,0,0);
if (date < todaysDate) {
alert("date is before today");
dueDate = '<small class="text-danger">';
} else {
alert("date is after today");
dueDate = '<small class="text-muted">';
}
row [3]是SQL日期的來源。所以,除了今天的日期以外,這一切都可以正常工作。如果沒有評論的話,它認爲今天的日期已經過去了。使用註釋行,我的代碼中斷了。任何想法如何解決這個問題?不知道我做錯了什麼。
謝謝!
今天應該是文字危險還是文字靜音?你有沒有試過'新日期(行[3])'? –
使用Date構造函數和* Date.parse *解析字符串是不可靠的,並且通常會產生意外的結果。如果你不透露'row [3]'的實際值,就不可能說出可能發生的事情。請注意,在符合ECMAScrip 2015的瀏覽器中,像「2016-04-10」這樣的字符串將被視爲UTC,因此如果您位於UTC以西,則可能會獲得4月9日的日期。另外,有些人仍然認爲它是本地的,有些則是無效的。 – RobG
是@RobG它是你提到的字符串格式 - YYYY-MM-DD,所以我認爲這是你提到的UTC問題。我會檢查你在下面發佈的代碼!而丹尼爾,澄清,今天應該是平靜的,而不是危險。我希望今天不要被包含在第一個if語句中。 – dangr