[英]Date comparison not working as expected
嗨,我在JS代碼中有以下if語句。
if (attributes.DATE > '10/20/2013'){
html += '<b>Maximum percentage:</b> ' + aPerc + '%';
}
else {
html += '<b>Percentage:</b> ' + aPerc + '%';
}
對於2013年10月的日期和所有1月的日期(無論年份如何),它似乎都可以正常工作。
在過去的10月中,它將在10月1日至19日顯示“最大百分比:”,在10月20日至31日顯示“百分比”。
其他月份無法正常工作。 例如2月,3月,4月等,它顯示“最大百分比”。
我猜想這與我的日期格式有關嗎? 謝謝。
我會這樣做:
var date1 = new Date(attributes.DATE);
var date2 = new Date('10/20/2013');
if (date1 > date2){
html += '<b>Maximum percentage:</b> ' + aPerc + '%';
}
else {
html += '<b>Percentage:</b> ' + aPerc + '%';
}
這樣,您將比較兩個日期對象而不是兩個字符串對象。
您正在進行字符串比較,但是字符串中字段的順序不會為您提供日期順序的比較。 (如果兩個字符串均為yyyy/MM/dd
順序,您將得到一個...)
如果DATE
是Date
實例,則可以執行以下操作:
if (attributes.DATE >= new Date(2013, 9, 21)){
...從10月21日午夜開始就是正確的(月份值從0 =一月開始,所以9 =十月)。 請注意,我將其設置為>=
和21號,而不是20號,因為我假設如果您要查找> '10/20/2013'
,則表示21號或更高版本(而不是意思是“ 20號”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.