日期比较在某些浏览器中不起作用- Javascript
Date comparison not working in some browsers - Javascript
我遇到了一些不寻常的问题。
var past = utils.stringToDate(past, 'dd-mm-yyyy', '-');
var today = new Date();
past.setHours(0, 0, 0, 0);
today.setHours(0, 0, 0, 0);
return today > past? true: false;
上面的代码用来设置一个标志,这个标志用来决定用户所处的流。现在的问题是,它在包括IE在内的大多数浏览器上都能工作,但在windows上的Safari(在Safari, Mac上运行良好)和Opera上就失败了。
past是我从服务器接收到的日期,值为27-09-2015
。
stringToDate是将日期格式化为指定格式的函数。
测试用例past : 27-09-2015
today: 25-09-2015
上面的代码仍然在上述浏览器中返回true
。
所以问题是,在比较javascript中的日期对象的浏览器是否有差异,如果是的话,我应该知道的所有不太为人所知的情况是什么?
这个变量在整个生命周期中只设置一次,不会在其他地方更新。
您可以像这样将它们添加到原型中进行比较:
/*
* Compares two Date objects numerically.
*
* @param date the Date to be compared.
* @return the value of 0 if this Date is equal to the argument date;
* a value of -1 if this Date is numerically less than the argument date;
* and a value of 1 if this Date is numerically greater than the argument date.
*/
Date.prototype.compareTo = function(date) {
var d1_this = this.getTime(),
d2_time = date.getTime();
if (d1_this == d2_time) {
return 0;
} else if (d1_this < d2_time) {
return -1;
} else {
return 1;
}
}
然后像这样使用:
var date1 = new Date(), date2 = new Date(); // init vars
date1.compareTo(date2); // or
date2.compareTo(date1);
相关文章:
- 为什么这个 .push 不起作用?(JavaScript)
- document.createelement不起作用(javascript)
- Chrome 中表格的 CSV 导出不起作用 - JavaScript/AngularJS
- 如果语句不起作用 - JavaScript
- 为什么我的动态更改链接不起作用?(Javascript)
- RPS 函数不起作用(JavaScript)
- 计时器间隔不起作用 Javascript
- 通过返回 false - 不起作用(javascript)来阻止链接打开
- Eval 不起作用 - JavaScript
- Android 浏览器 .click() 不起作用 javascript
- 为什么这段代码不起作用?Javascript
- jsFiddle显示正确,但一旦在本地运行就不起作用(Javascript)
- 带有html的Navigator不起作用javascript
- 从文本文件中提取内容不起作用 JavaScript
- 从查询字符串中获取参数;不起作用..Javascript
- regex手机验证不起作用-javascript
- if和else语句不起作用(javascript)(html)
- 更改字体大小的复选框不起作用-Javascript
- 为什么这个基本的 if 语句不起作用?JavaScript
- Timer 不起作用/ JavaScript/ innerHTML null