js源码--日期(2)

原创 2007年09月18日 15:58:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<BODY>
<form name="form1" method="post" action="">
日期:
<input type="text" id="a" onclick="restrictInputValue(this)" onkeydown="ddd(this)" >
天数:
<input type="text" id="b" >
日期相加:
<input type="text" id="c" >
<input type="button"  value="判断是否合法" onClick="aaa(document.getElementById('a'))">
<input type="button"  value="获得日期" onClick="bbb(document.getElementById('a'))">
<input type="button"  value="日期相加" onClick="ccc(document.getElementById('a'),document.getElementById('b'))">
</form>
</BODY>
</HTML>

<script language="javascript">

window.onload
=init;
function init(){
var oDate = new Date();
var result= oDate.getFullYear()+"-"+(oDate.getMonth()<10?("0" + (oDate.getMonth()+1)):(oDate.getMonth()+1))+"-"+(oDate.getDate()<10?("0" + oDate.getDate()) : oDate.getDate());
document.getElementById(
"a").value=result;
}


String.prototype.isDate 
= function()
{
var r = this.match(/^(d{4})(-|/)(d{1,2})2(d{1,2})$/);
if(r==null)return false;
var d = new Date(r[1], r[3]-1,r[4]);
if (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]){
return true;
}

}


function aaa(obj){
if(!obj.value.isDate()){
alert(
"error");
obj.focus();
}

}


function bbb(obj){
var r = obj.value.match(/^(d{4})(-|/)(d{1,2})2(d{1,2})$/);
if(r==null)return false;
var d = new Date(r[1], r[3]-1,r[4]);
var result=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()
document.getElementById(
"c").value=""
document.getElementById(
"c").value=result
}


function ccc(obj1,obj2){
var r = obj1.value.match(/^(d{4})(-|/)(d{1,2})2(d{1,2})$/);
if(r==null)return false;
var d = new Date(r[1], r[3]-1,r[4]);
var c=new Date(d.getTime()+obj2.value*1000*60*60*24)
var result=c.getFullYear()+"-"+((parseInt(c.getMonth())+1>9)?"":"0")+(parseInt(c.getMonth())+1)+"-"+(c.getDate()>9?"":"0")+c.getDate()
document.getElementById(
"c").value=""
document.getElementById(
"c").value=result
}



function restrictInputValue(obj)
{
    
var range = obj.createTextRange();
    
var selRange = document.selection.createRange();
    range.moveStart(
"character",-obj.value.length)
    selRange.setEndPoint(
"StartToStart",range);
    
if(selRange.text.length<5){
    specialText_SelectYear(obj);
    }

    
else if(selRange.text.length>4&&selRange.text.length<8){
    specialText_SelectMonth(obj)
    }

    
else{
    specialText_SelectDate(obj)
    }

}


function specialText_SelectYear(oInput)
{
        
var oRange = oInput.createTextRange();
        oRange.moveStart(
"character",0);
        oRange.moveEnd(
"character",-6);
        
//代表选中了年
        oInput.selectIndex = 1;
        oRange.select();
}

//选中月份
function specialText_SelectMonth(oInput)
{
        
var oRange = oInput.createTextRange();
        oRange.moveStart(
"character",5);
        oRange.moveEnd(
"character",-3);
        
//代表选中了月
        oInput.selectIndex = 2;
        oRange.select();
}

//选中日期
function specialText_SelectDate(oInput)
{
        
var oRange = oInput.createTextRange();
        oRange.moveStart(
"character",8);
        
//代表选中了日期
        oInput.selectIndex = 3;
        oRange.select();
}


function ddd(oInput){   
oEvent
=window.event   
 
if((oEvent.keyCode >= 48 && oEvent.keyCode <= 57||
    (oEvent.keyCode 
>= 96 && oEvent.keyCode <= 105)){
    
return;
}

oEvent.returnValue
=false;
}

</script>
 
我写的这个就算比较简单的了,适合初学者对日期应用的认识较为合适。

相关文章推荐

带农历的js日期源码

  • 2017年04月27日 11:36
  • 6KB
  • 下载

jquery源码阅读知识储备(2)js中等号的秘密

如果其中一个操作数的类型为 Boolean ,那么,首先将它转换为数字类型,false 转换为 0, true 将转换为 1。如果其中一个操作数的类型是字符串,另外一个为数字类型,那么,将字符串转换为...

百度map api并未公开获取站点坐标经纬度的api接口,通过logger2js分析百度地图api源码,找出获取某条公交线各个站点经纬度的未公开方法。

需求说明:      百度map api并未公开获取站点坐标经纬度的api接口,通过logger2js分析百度地图api源码,找出获取某条公交线各个站点经纬度的未公开方法。 被分析页面全部代码...

分享:json2.js源码解读笔记

json是大家常用的数据转换格式,也是一个经典js类库。解读源码有助于提高javascript框架设计水平和编码水平。同时,有助于自己对json更深层次的理解。...

MMORPG传奇类手游《空空西游》完整源码(客户端cocos2d-js+服务端pomelo+cocosStudio工程+搭建教程)

MMORPG传奇类手游《空空西游》完整源码,包括:客户端cocos2d-js+服务端pomelo+cocosStudio工程+搭建教程。 客户端:cocos2d-js 服务端:pomelo...

easyui 源码分析(easyloader.js)(2)

easyloader模块是用来加载jquery easyui的js和css文件的,而且它可以分析模块的依赖关系,先加载依赖项。模块加载好了会调用parse模块来解析页面。把class是easyui开头...

axis2 webservice入门学识(JS,Java,PHP调用实例源码)

来源:http://www.myexception.cn/web/952419.html   axis2 webservice入门知识(JS,Java,PHP调用实例源码) 背景简介 最近接触到一个银...
  • gqltt
  • gqltt
  • 2013年11月28日 11:42
  • 968

cocos2d_js 拼图游戏源码(点击互换版)

resource.jsvar res = { pt1_url:"res/pt_1.jpg", };var g_resources = []; for (var i in res) { ...

Three.js开发指南源码-2

  • 2015年11月04日 23:00
  • 39.33MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:js源码--日期(2)
举报原因:
原因补充:

(最多只允许输入30个字)