我想以这种格式比较两个日期 dd mmm yyyy,比较验证器不会工作,因为格式和自定义验证器是服务器端验证。我想进行客户端验证。最好的方法是什么?如果您有任何示例或链接,请告诉我。
我不知道是否有可用的 ajax、jquery 或 javascript 选项可以做到这一点?
干杯
我想以这种格式比较两个日期 dd mmm yyyy,比较验证器不会工作,因为格式和自定义验证器是服务器端验证。我想进行客户端验证。最好的方法是什么?如果您有任何示例或链接,请告诉我。
我不知道是否有可用的 ajax、jquery 或 javascript 选项可以做到这一点?
干杯
由于 JavaScript 原生转换自MMM dd, yyyy
,这将是一种方法:
var date1Str = "09 Sep 2011";
var date2Str = "04 May 2012";
var dateParts = date1Str.split(" ");
var newDateStr = dateParts[1] + " " + dateParts[0] + ", " + dateParts[2];
var date1 = new Date( newDateStr );
var dateParts = date2Str.split(" ");
var newDateStr = dateParts[1] + " " + dateParts[0] + ", " + dateParts[2];
var date2 = new Date( newDateStr );
if ( date1 > date2 )
...
网络上有大量的链接可以在 JavaScript 中进行日期解析,并且有大量的库可以让它变得更容易。请记住,文化起着一定的作用。“Oct”是英文,但在德文中是“Okt”。
这是一个可以用来比较日期的简单类;该convert
功能已调整以适应您的格式:
<script type="text/javascript">
var dates = {
convert:function(d) {
return (
d.constructor === Date ? d :
d.constructor === Array ? new Date(d[1],d[0],d[2]) :
d.constructor === Number ? new Date(d) :
d.constructor === String ? new Date(d) :
typeof d === "object" ? new Date(d.year,d.month,d.date) :
NaN
);
},
compare:function(a,b) {
return (
isFinite(a=this.convert(a).valueOf()) &&
isFinite(b=this.convert(b).valueOf()) ?
(a>b)-(a<b) :
NaN
);
},
inRange:function(d,start,end) {
return (
isFinite(d=this.convert(d).valueOf()) &&
isFinite(start=this.convert(start).valueOf()) &&
isFinite(end=this.convert(end).valueOf()) ?
start <= d && d <= end :
NaN
);
}
}
</script>
该课程的学分属于@some:https ://stackoverflow.com/a/497790/879420