嗨我在JS代码中有以下if语句。
if (attributes.DATE > '10/20/2013'){
html += '<b>Maximum percentage:</b> ' + aPerc + '%';
}
else {
html += '<b>Percentage:</b> ' + aPerc + '%';
}
2013年10月的日期以及所有1月份的日期(无论年份)似乎都正常。
过去十年,它将显示10月1日至19日的“最大百分比:”和10月20日至31日的“百分比”。
其他月份无效。例如。 2月,3月,4月等显示“最大百分比”。
我猜它与我的日期格式有关?谢谢。
答案 0 :(得分: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 + '%';
}
这样,您将比较两个 date 对象,而不是两个 string 对象。
答案 1 :(得分:1)
您正在进行字符串比较,但字符串中字段的顺序不会为您提供日期顺序比较。 (如果两个字符串都在yyyy/MM/dd
顺序中,你会得到一个......)
如果DATE
是Date
个实例,您可以这样做:
if (attributes.DATE >= new Date(2013, 9, 21)){
...从10月21日午夜开始(月份值从0 = 1月开始,因此9 = 10月)。注意我做了>=
和21而不是20,因为我假设你正在寻找> '10/20/2013'
,你的意思是21或更晚(而不是意味着“午夜之后的任何时间)第20个“)。