Use JavaScript to implement the date time format input of the input box

Source: Internet
Author: User
Using in the page code
...
<script language= "javascript" src= ". /public/datetime.js "></script>
<script language= "javascript" type= "Text/javascript" >
...
function Submit ()
{
...
if (IsDate ("StartTime") ==false) {return false;} Whether the check time is entered correctly at commit
...
}
</script>
...
Time: <input name= "datetime" type= "text" onkeydown= "Inputdatetime (' StartTime ')" value= "0000-00-00 00:00:00" size= "20 "Maxlength="/>
...
<script language= "javascript" type= "Text/javascript" >
document.all ("datetime"). Value=changedatetime ("datetime"),//Time format
</script>

Date-time Format function
Datetime.js
function Inputdatetime (objectname)
{
var oinput=document.all (objectname);
var range=document.all (objectname). createTextRange ();//Create a TextRange object for the element.
var selrange = Document.selection.createRange ();//Create TextRange object from the current text selection
var startpos = 0,endpos = 0;
var oleft;
var oright;
var olength;
var pos;
var cursorpos=0;//cursor Next relative position
var cursorpos1=0;//cursor End Position
var Keytext;
var curtext=range.text;//current input Box text
var charbuff;//temporary characters
while (Selrange.compareendpoints ("Starttostart", Range) >0)//Compares the end point of the TextRange object with the end point of the other range.
{
Selrange.movestart ("character",-1);//Change the start position of the range. Moves one or more characters
Startpos + +;
}
Olength=curtext.length;

if (STARTPOS&GT;18)//cursor position out of range
{
if (event.keycode==8)//Back Key special case
{oleft=curtext.substring (0,startpos); oright= "0";
Oinput.value=oleft+oright;
Range.movestart ("character", 19);
Range.collapse (TRUE);//Moves the insertion point to the beginning or end of the current range.
Range.Select ();
///Place the current selection as the current object. }
else if (event.keycode==46| | event.keycode==39| | EVENT.KEYCODE==40)
{
Range.movestart ("character", 19);
Range.collapse (TRUE);
Range.Select ();
}
else if (event.keycode==37)//forward Key
{
Range.movestart ("character", 19);
Range.collapse (TRUE);
Range.Select ();
}
else if (event.keycode==38)/Up ARROW
{
Range.movestart ("character", 18);
Range.collapse (TRUE);
Range.Select ();
}
else{
Oinput.value = curtext.substring (0,18);
Range.movestart ("character", 18);
Range.moveend ("character", 19);
Range.collapse (TRUE);
Range.Select (); Resets the current selection to the current object.
}
}
else if (event.keycode>47&&event.keycode<58)//key is a number
{
if (startpos==0)
{oleft= ""; oright=curtext.substring (1,olength); cursorpos=0;cursorpos1=1;}
else if (startpos==4| | STARTPOS==7)
{oleft=curtext.substring (0,startpos) + "-"; oright=curtext.substring (startpos+2,olength); cursorpos=1;cursorpos1=2 ;}
else if (startpos==10)
{oleft=curtext.substring (0,startpos) + ""; oright=curtext.substring (startpos+2,olength); cursorpos=1;cursorpos1=2;}
else if (startpos==13| | STARTPOS==16)
{oleft=curtext.substring (0,startpos) + ":"; oright=curtext.substring (startpos+2,olength); cursorpos=1;cursorpos1=2 ;}
else if (startpos>0&&startpos<19)
{oleft=curtext.substring (0,startpos); oright=curtext.substring (startpos+1,olength); cursorpos=0;cursorpos1=1;}
Oinput.value = Oleft+oright;
Range.movestart ("character", Startpos+cursorpos);
Range.moveend ("character", STARTPOS+CURSORPOS1);
Range.collapse (TRUE);
Range.Select ();
}
else if (event.keycode==8)//Back button, the current one character is "-" or "" or ":" Unchanged, otherwise replace with "0"
{
if (startpos==0)
{oleft= ""; oright=curtext.substring (startpos,olength);}
else if (startpos==14| | STARTPOS==17)
{oleft=curtext.substring (0,startpos); oright= ":" +curtext.substring (startpos,olength);}
else if (startpos==11)
{oleft=curtext.substring (0,startpos); oright= "" +curtext.substring (Startpos,olength);}
else if (startpos==5| | STARTPOS==8)
{oleft=curtext.substring (0,startpos); oright= "-" +curtext.substring (startpos,olength);}
else if (startpos==1| | startpos==2| | startpos==3| | startpos==4| | startpos==6| | startpos==7| | startpos==9| | startpos==10| | startpos==12| | startpos==13| | startpos==15| | startpos==16| | STARTPOS==18)
{oleft=curtext.substring (0,startpos); oright= "0" +curtext.substring (startpos,olength);}
Else
{oleft=curtext.substring (0,startpos); oright=curtext.substring (startpos-1,olength);}
Oinput.value = Oleft+oright;
Range.movestart ("character", startpos);
Range.collapse (TRUE);
Range.Select ();
}
else if (event.keycode==46)//delete the key, when the latter character is "-" or "" or ":" Unchanged, otherwise replace with "0"
{
if (startpos==0)
{oleft= "0"; oright=curtext.substring (startpos,olength);}
else if (startpos==13| | STARTPOS==16)
{oleft=curtext.substring (0,startpos) + ":"; oright=curtext.substring (startpos,olength);}
else if (startpos==10)
{oleft=curtext.substring (0,startpos) + ""; oright=curtext.substring (startpos,olength);}
else if (startpos==4| | STARTPOS==7)
{oleft=curtext.substring (0,startpos) + "-"; oright=curtext.substring (startpos,olength);}
else if (startpos==1| | startpos==2| | startpos==3| | startpos==5| | startpos==6| | startpos==8| |startpos==9| | startpos==11| | startpos==12| | startpos==14| | startpos==15| | startpos==17| | STARTPOS==18)
{oleft=curtext.substring (0,startpos) + "0"; oright=curtext.substring (startpos,olength);}
Else
{oleft=curtext.substring (0,startpos+1); oright=curtext.substring (startpos,olength);}
Oinput.value = Oleft+oright;
Range.movestart ("character", startpos+1);
Range.collapse (TRUE);
Range.Select ();
}
else if (event.keycode==38)/Up ARROW
{
Range.movestart ("character", startpos-1);
Range.collapse (TRUE);
Range.Select ();
}
else if (event.keycode==40)//down ARROW
{
Range.movestart ("character", startpos+1);
Range.collapse (TRUE);
Range.Select ();
}
else//Other buttons do not react
{
Oleft=curtext.substring (0,startpos);
Oright=curtext.substring (startpos,olength);
Oinput.value = Oleft+oright;
Range.movestart ("character", startpos);
Range.collapse (TRUE);
Range.Select ();
}
}
function Changedatetime (objectname)//date format specification to YYYY-MM-DD HH-MM-SS
{
var Textbuff;
var Year,month,day,minute,hour,second;
var curtext=document.all (objectname). value;
Year=curtext.substring (0,curtext.indexof ("-"));
Curtext=curtext.substring (Curtext.indexof ("-") +1,curtext.length)
Month=curtext.substring (0,curtext.indexof ("-"));
if (month.length<2) {month= "0" +month;}
Curtext=curtext.substring (Curtext.indexof ("-") +1,curtext.length)
Day=curtext.substring (0,curtext.indexof (""));
if (day.length<2) {day= "0" +day;}
Curtext=curtext.substring (Curtext.indexof ("") +1,curtext.length)
Hour=curtext.substring (0,curtext.indexof (":"));
if (hour.length<2) {hour= "0" +hour;}
Curtext=curtext.substring (Curtext.indexof (":") +1,curtext.length)
Minute=curtext.substring (0,curtext.indexof (":"));
if (minute.length<2) {minute= "0" +minute;}
Curtext=curtext.substring (Curtext.indexof (":") +1,curtext.length)
Second=curtext.substring (0,curtext.length);
if (second.length<2) {second= "0" +second;}
Return (year+ "-+month+"-"+day+" "+minute+": "+hour+": "+second)
}
function IsDate (checktext)/Date Time check
{
var datetime;
var Year,month,day,hour,munite,second;
var gone,gtwo,gthree,gfour,gfive;
Datetime=document.all (Checktext). value;
Year=datetime.substring (0,4);
Gone=datetime.substring (4,5);
Month=datetime.substring (5,7);
Gtwo=datetime.substring (7,8);
Day=datetime.substring (8,10);
Gthree=datetime.substring (10,11);
Hour=datetime.substring (11,13);
Gfour=datetime.substring (13,14);
Munite=datetime.substring (14,16);
Gfive=datetime.substring (16,17);
Second=datetime.substring (17,19);
if ((gone== "-") && (gtwo== "-") && (gthree== "") && (gfour== ":") && (gfive== ":"))
{
if (month<1| | MONTH&GT;12) {alert ("month must be between 01 and 12!"); return false;}
if (day<1| | DAY&GT;31) {alert ("date must be between 01 and 31!"); return false;}
else{
if (month==2)
{
if ((year%4) ==0&&day>29) {alert ("February date must be between 01 and 29!"); return false;}
if ((year%4) >0&&day>28) {alert ("February date must be between 01 and 28!"); return false;}
}
if (month==4| | month==6| | month==9| | month==11) && (day>30)) {alert ("in four, six, nine, November/n date must be between 01 and 30!"); return false;}
}
if (hour>23) {alert ("hours must be between 00 and 24!"); return false;}
if (munite>59) {alert ("minutes must be between 00 and 60!"); return false;}
if (second>59) {alert ("seconds must be between 00 and 60!"); return false;}
}
Else
{
Alert (Please enter a date! Format is (YYYY-MM-DD hh-mm-ss)/n case (2001-01-01 01:00:00) ");
return false;
}
return true;
}
Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.