纯属练习,只能实现简单的日期比较,不足之处欢迎各路高手指出。欢迎贴代码。
var LESSTHEN = 0;
var EQUALS = 1;
var GREATERTHEN = 2;
var ERROR = 3;
/**
* 校验输入内容为合法日期
* @param {String} str 日期字符串
* @return {Boolean} true:日期符合格式yyyy-MM-dd或yyyy/MM/dd false:日期不符合格式yyyy-MM-dd或yyyy/MM/dd
*/
function isValidDate(str){
var checkStr = str;
var reg = "/";
checkStr = checkStr.replace(/-/g,reg)
var m = checkStr.length;
var year;
var month;
var day;
if(!(checkStr == null || checkStr=="" ))
{
if(m == 10 && checkStr.charAt(4) == reg && checkStr.charAt(7) == reg)
{
year = parseInt(checkStr.split(reg)[0],10);
month = parseInt(checkStr.split(reg)[1],10);
day = parseInt(checkStr.split(reg)[2],10);
if(month > 12 || month == 0){
alert(checkStr + "的格式不符,要求月份在1-12之间!");
return false;
}
if(day > 31 || day ==0)
{
alert(checkStr + "的格式不符,要求日在1-31之间!");
return false;
}
else if((month == 2 || month == 4 || month ==6 || month ==9 || month ==11) && day == 31)
{
alert(checkStr + "的格式不符," + month + "月无31日!");
return false;
}
else if(month == 2 && day == 30)
{
alert(checkStr + "的格式不符,"+year+"月" +month+"月无30日!");
return false;
}
else if((year%100==0)&&(year%400!=0) && month == 2 && day == 29)
{
alert(checkStr + "的格式不符,"+year+"月" +month+"月无29日!");
return false;
}
else if((year%4)!=0 && month == 2 && day == 29)
{
alert(checkStr + "的格式不符,"+year+"月" +month+"月无29日!");
return false;
}
}
else
{
alert(checkStr + "的格式不符,要求yyyy-MM-dd或yyyy/MM/dd!");
return false;
}
}
return true;
}
/**
* 日期比较
* @param {Date} d1 日期1
* @param {Date} d2 日期2
* @return {Number} 0:小于 1:等于 2:大于 3 错误
*/
function dateCompare(d1,d2)
{
//如果比较的不是日期,直接返回false
if(!(d1 instanceof Date) || !(d2 instanceof Date))
{
return ERROR;
}
var d1Year = d1.getFullYear();
var d2Year = d2.getFullYear();
var d1Month = d1.getMonth();
var d2Month = d2.getMonth();
var d1Date = d1.getDate();
var d2Date = d2.getDate();
//比较年
if (d1Year < d2Year)
{
return LESSTHEN;
}
//如果年相等,比较月
if (d1Year == d2Year)
{
if (d1Month < d2Month)
{
return LESSTHEN;
}
}
//如果年,月都相等,比较日
if (d1Year == d2Year)
{
if(d1Month == d2Month)
{
if (d1Date < d2Date)
{
return LESSTHEN;
}
else if (d1Date == d2Date)
{
return EQUALS;
}
else
{
return GREATERTHEN;
}
}
else
{
return GREATERTHEN;
}
}
else
{
return GREATERTHEN;
}
}
/**
* 日期比较
* @param {String} d1 日期1 格式为:yyyy-MM-dd或yyyy/MM/dd
* @param {String} d2 日期2 格式为:yyyy-MM-dd或yyyy/MM/dd
* @return {Number} 0:小于 1:等于 2:大于 3 错误
*/
function dateCompareStr(d1,d2)
{ var reg = "/";
if(isValidDate(d1)&&isValidDate(d2))
{
d1 = new Date(Date.parse(d1.replace(/-/g,reg)));
d2 = new Date(Date.parse(d2.replace(/-/g,reg)));
return dateCompare(d1,d2);
}
else
{
return ERROR;
}
}
测试代码
alert(dateCompareStr('2010-08-30','2011-08-30'));
alert(dateCompareStr('2011-08-30','2011-08-30'));
alert(dateCompareStr('2011-08-30','2010-07-30'));
结果
0
1
2
分享到:
相关推荐
### JavaScript中的日期比较 在JavaScript开发中,对日期进行比较是一项常见的需求,尤其是在涉及时间管理、数据排序等场景时。本文将详细介绍如何在JavaScript中实现日期的比较,并提供几种不同的方法来帮助开发者...
通过这种方式,可以有效地处理日期比较问题,适用于多种场景下的需求。 ### 总结 本文介绍了一种纯JS方法来比较日期之间的大小,并给出了详细的步骤和代码实现。这种方法简单实用,适用于大多数Web开发项目。通过...
《一个简单功能的js日期插件》 在前端开发中,日期处理是一个常见的需求,而JavaScript作为浏览器端的主要脚本语言,其内置的Date对象虽然提供了基础的日期操作,但在复杂的交互和格式化方面往往显得力不从心。此时...
"一个简易js日期下拉选择菜单" 提供了一个用JavaScript实现的简单解决方案,无需依赖任何外部库,如jQuery或Moment.js。这种自定义的日期选择器可以有效地减少页面加载时间,特别适用于对性能有要求的小型项目。 ...
本教程将详细讲解一个基于纯JavaScript实现的日期控件,其特点在于使用简单,无需依赖任何外部库。 1. **纯JavaScript实现** 这个日期控件完全由JavaScript编写,不依赖jQuery或其他JavaScript框架,这使得它在...
在JavaScript(以下简称JS)编程语言中,处理日期和时间是一个常见的需求,特别是在涉及日期比较、时间戳转换等操作时。本文将围绕“JS判断日期大小”这一主题,深入解析如何利用JS内置的Date对象和一些实用函数来...
在JavaScript(简称JS)开发中,处理日期选择是常见的需求,尤其在网页表单或交互式界面中。"js 日期选择 简单漂亮"的实现通常涉及到创建一个直观且用户友好的日期选择器,使得用户能够方便地选取特定日期。本主题将...
标题中提到的“超级简单好用的JS日期控件”很可能是一个基于JavaScript实现的日期选择插件,它提供了方便快捷的日期选择功能,避免了.NET自带控件的复杂性。这种控件通常会在用户聚焦到输入框时,通过JS事件监听机制...
在本案例中,我们关注的是一个名为"超简洁的JS日期控件"的组件,它提供了一种简单的方式在HTML页面中添加日期选择功能。 该日期控件的核心是名为`setday.js`的JavaScript文件。这个文件包含了实现日期选择功能的...
例如,它可以提供一个简单的API,允许开发者通过指定最小日期(日期下限)和最大日期(日期上限)来限制用户的选择范围。这样,你可以确保用户不能选择超出业务逻辑所允许的日期范围。 插件的实现通常包括以下几个...
"JS 日期控件"是一个专门处理日期选择功能的JavaScript库,它简化了开发者在网页上添加日期选择功能的过程。下面将详细探讨这一主题,包括其核心特性、使用方法以及自定义选项。 1. **核心特性** - **轻量级**:JS...
【简易日期选择器(JS版)】是一款JavaScript实现的日期选择工具,专为网页应用设计,具有良好的浏览器兼容性,支持古老的Internet Explorer 6和7,以及Firefox 3.1900年至2099年的日期范围。该日期选择器提供了一套...
调用简单,下拉传一日期加类型即可转换日期的类型,如: CalConvert(new Date(2010,3,19), false) //农历转换为公历 CalConvert(new Date(2010,3,19), true)//公历转换成农历
- **日期对象(Date Object)**:JavaScript内置的Date对象用于处理日期和时间,可以创建、比较和操作日期。 - **DOM事件(DOM Events)**:在用户与网页进行交互时触发的事件,如点击、改变等,JS通过监听这些...
JavaScript(简称JS)是一种轻量级的脚本语言,常用于网页交互和动态效果的实现。在网页中,实现一个日期选择控件可以提供用户友好的界面,方便他们选择日期。这里我们讨论如何使用JS来创建一个简单的日期选择器。 ...
Moment.js 是一个强大的JavaScript日期库,可以轻松处理日期格式化、解析和比较。Pickadate.js 是一个轻量级的日期选择器,可以与Moment.js结合使用,提供灵活的日期选择功能。 6. **Vanilla JS 库**: 如`...
它们都可以通过简单的API调用来实现定制,以满足各种复杂的日期和时间选择场景。在实际应用中,可以考虑插件的性能、可定制性、浏览器兼容性和社区支持等因素,以确保选择的插件能满足项目的需求并提供良好的用户...
这个对象提供了丰富的属性(如`getFullYear()`、`getMonth()`、`getDate()`等)和方法(如`getFullYear()`、`setFullYear()`、`toLocaleString()`等),使得处理日期变得简单。 2. **自定义日期控件** 在HTML中,...
JavaScript日期选择器是一种常见的网页交互元素,用于帮助用户在网页上方便地选取日期。它通常以日历形式呈现,提供友好的用户界面,使得输入日期变得更加直观和简单。在前端开发中,尤其对于需要用户输入特定日期的...
"js日期控件封装"是一个已经预先编写的JavaScript库,它简化了在网页中添加日期选择功能的过程。这个控件的特点是易于集成,只需简单引用就能在项目中使用,并且样式可以根据开发者的需求进行自定义,以匹配网站的...