自动格式化日期js
2009-08-25 18:25
405 查看
<script type="text/javascript" language="javascript">
isDataTime = function (e,obj) {
try{
var key;
if ((document.all) ? true:false)
{
key = event.keyCode;
}
else
{
key = e.which;
}
if ( (key > 47) && (key < 58) )
{
var otext = obj.value; //已有的值
var keytext = String.fromCharCode(key); //当前输入的值
//begin
if(otext.length == 3) //年
{
var val = otext + keytext;
var t = parseInt(val);
if(t >= 2050)
obj.value = " " + otext + "年" + keytext;
else
obj.value = otext + keytext + "年";
return false;
}
else if(otext.length == 5) //月的第一位
{
var val = keytext;
var t = parseInt(val);
if(t > 1)
{
obj.value = otext.substring(0,5) + "0" + keytext + "月";
return false;
}
}
else if(otext.length == 6) //月的第二位
{
var val = otext.substring(5,6) + keytext;
var t = parseInt(val);
if(t > 12)
obj.value = otext.substring(0,5) + "0" + otext.substring(5,6) + "月" + keytext;
else
obj.value = otext + keytext + "月";
return false;
}
else if(otext.length == 8) //日的第一位
{
var val = keytext;
var t = parseInt(val);
if(t > 3)
{
obj.value = otext.substring(0,8) + "0" + keytext + "日 ";
return false;
}
}
else if(otext.length == 9)//日的第二位
{
var val = otext.substring(8,9) + keytext;
var t = parseInt(val);
if(t > 31)
obj.value = otext.substring(0,8) + "0" + otext.substring(8,9) + "日 " + keytext;
else
obj.value = otext + keytext + "日 ";
return false;
}
else if(otext.length == 12) //时的第一位
{
var val = keytext;
var t = parseInt(val);
if(t > 2)
{
obj.value = otext.substring(0,12) + "0" + keytext + "时";
return false;
}
}
else if(otext.length == 13)//时的第二位
{
var val = otext.substring(12,13) + keytext;
var t = parseInt(val);
if(t >= 24)
obj.value = otext.substring(0,12) + "0" + otext.substring(12,13) + "时" + keytext;
else
obj.value = otext + keytext + "时";
return false;
}
else if(otext.length == 15) //分的第一位
{
var val = keytext;
var t = parseInt(val);
if(t > 5)
{
obj.value = otext.substring(0,15) + "0" + keytext + "分";
return false;
}
}
else if(otext.length == 16)//分
{
var val = otext.substring(15,16) + keytext;
var t = parseInt(val);
if(t > 59)
obj.value = otext.substring(0,15) + "0" + keytext + "分";
else
obj.value = otext + keytext + "分";
return false;
}
else if (otext.length > 17)
return false;
else
{
return true;
}
//end
}
else if(key == 8)
{
return true;
}
else
{
return false;
}
}
catch(e)
{
alert(e);
}
}
</script>
<input style="width:160px;" onkeypress="javascript:return isDataTime(event,this);" />
测试环境:IE 8, Firefox 3.5.2
isDataTime = function (e,obj) {
try{
var key;
if ((document.all) ? true:false)
{
key = event.keyCode;
}
else
{
key = e.which;
}
if ( (key > 47) && (key < 58) )
{
var otext = obj.value; //已有的值
var keytext = String.fromCharCode(key); //当前输入的值
//begin
if(otext.length == 3) //年
{
var val = otext + keytext;
var t = parseInt(val);
if(t >= 2050)
obj.value = " " + otext + "年" + keytext;
else
obj.value = otext + keytext + "年";
return false;
}
else if(otext.length == 5) //月的第一位
{
var val = keytext;
var t = parseInt(val);
if(t > 1)
{
obj.value = otext.substring(0,5) + "0" + keytext + "月";
return false;
}
}
else if(otext.length == 6) //月的第二位
{
var val = otext.substring(5,6) + keytext;
var t = parseInt(val);
if(t > 12)
obj.value = otext.substring(0,5) + "0" + otext.substring(5,6) + "月" + keytext;
else
obj.value = otext + keytext + "月";
return false;
}
else if(otext.length == 8) //日的第一位
{
var val = keytext;
var t = parseInt(val);
if(t > 3)
{
obj.value = otext.substring(0,8) + "0" + keytext + "日 ";
return false;
}
}
else if(otext.length == 9)//日的第二位
{
var val = otext.substring(8,9) + keytext;
var t = parseInt(val);
if(t > 31)
obj.value = otext.substring(0,8) + "0" + otext.substring(8,9) + "日 " + keytext;
else
obj.value = otext + keytext + "日 ";
return false;
}
else if(otext.length == 12) //时的第一位
{
var val = keytext;
var t = parseInt(val);
if(t > 2)
{
obj.value = otext.substring(0,12) + "0" + keytext + "时";
return false;
}
}
else if(otext.length == 13)//时的第二位
{
var val = otext.substring(12,13) + keytext;
var t = parseInt(val);
if(t >= 24)
obj.value = otext.substring(0,12) + "0" + otext.substring(12,13) + "时" + keytext;
else
obj.value = otext + keytext + "时";
return false;
}
else if(otext.length == 15) //分的第一位
{
var val = keytext;
var t = parseInt(val);
if(t > 5)
{
obj.value = otext.substring(0,15) + "0" + keytext + "分";
return false;
}
}
else if(otext.length == 16)//分
{
var val = otext.substring(15,16) + keytext;
var t = parseInt(val);
if(t > 59)
obj.value = otext.substring(0,15) + "0" + keytext + "分";
else
obj.value = otext + keytext + "分";
return false;
}
else if (otext.length > 17)
return false;
else
{
return true;
}
//end
}
else if(key == 8)
{
return true;
}
else
{
return false;
}
}
catch(e)
{
alert(e);
}
}
</script>
<input style="width:160px;" onkeypress="javascript:return isDataTime(event,this);" />
测试环境:IE 8, Firefox 3.5.2
相关文章推荐
- 文字自动换行, jstl 格式化时间日期,js contains
- 自动格式化日期js
- js获取日期、时间、日期常用方法、时间计算并格式化和实现电子表
- javascript Date format(js日期格式化)
- js格式化日期
- JS实现点击表头表格自动排序(含数字、字符串、日期)
- node.js 日期格式化
- js 日期与字符串互转 (网上没有的, 字符串转日期支持任意格式化字符串)
- js中格式化日期时间型数据函数代码
- js,格式化long类型日期封装
- js中格式化日期时间
- js扩展Date对象 日期格式化
- 让Editplus自动格式化js、css、html。。。
- 对js中的Date扩展,格式化日期
- [Javascript] Js 计算、格式化日期工具
- js返回格式化日期
- JS日期格式化,拿到时间段日期
- 记录下Js日期选择器并自动加入到输入框中
- js格式化日期
- javascript Date format(js日期格式化)