<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-46  評(píng)論-54  文章-0  trackbacks-0
    1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2 <html xmlns="http://www.w3.org/1999/xhtml">
    3 <head>
    4 <title> javascript string to date by pattern </title>
    5 </head>
    6 <body>
    7 <script language="javascript">
    8
    9 /** year : /yyyy/ */
    10 var y4 = "([0-9]{4})";
    11 /** year : /yy/ */
    12 var y2 = "([0-9]{2})";
    13 /** index year */
    14 var yi = -1;
    15
    16 /** month : /MM/ */
    17 var M2 = "(0[1-9]|1[0-2])";
    18 /** month : /M/ */
    19 var M1 = "([1-9]|1[0-2])";
    20 /** index month */
    21 var Mi = -1;
    22
    23 /** day : /dd/ */
    24 var d2 = "(0[1-9]|[1-2][0-9]|30|31)";
    25 /** day : /d/ */
    26 var d1 = "([1-9]|[1-2][0-9]|30|31)";
    27 /** index day */
    28 var di = -1;
    29
    30 /** hour : /HH/ */
    31 var H2 = "([0-1][0-9]|20|21|22|23)";
    32 /** hour : /H/ */
    33 var H1 = "([0-9]|1[0-9]|20|21|22|23)";
    34 /** index hour */
    35 var Hi = -1;
    36
    37 /** minute : /mm/ */
    38 var m2 = "([0-5][0-9])";
    39 /** minute : /m/ */
    40 var m1 = "([0-9]|[1-5][0-9])";
    41 /** index minute */
    42 var mi = -1;
    43
    44 /** second : /ss/ */
    45 var s2 = "([0-5][0-9])";
    46 /** second : /s/ */
    47 var s1 = "([0-9]|[1-5][0-9])";
    48 /** index month */
    49 var si = -1;
    50
    51 var regexp;
    52
    53 function getDate(dateString, formatString){
    54 if(validateDate(dateString, formatString)) {
    55 var now = new Date();
    56 var vals = regexp.exec(dateString);
    57 var index = validateIndex(formatString);
    58 var year = index[0]>=0?vals[index[0] + 1]:now.getFullYear();
    59 var month = index[1]>=0?(vals[index[1] + 1]-1):now.getMonth();
    60 var day = index[2]>=0?vals[index[2] + 1]:now.getDate();
    61 var hour = index[3]>=0?vals[index[3] + 1]:"";
    62 var minute = index[4]>=0?vals[index[4] + 1]:"";
    63 var second = index[5]>=0?vals[index[5] + 1]:"";
    64
    65 var validate;
    66
    67 if (hour == "")
    68 validate = new Date(year, month, day);
    69 else
    70 validate = new Date(year, month, day, hour, minute, second);
    71
    72 if(validate.getDate()==day) return validate;
    73
    74 }
    75 alert("wrong date");
    76 }
    77
    78
    79 function validateDate(dateString, formatString){
    80 var dateString = trim(dateString);
    81 if(dateString=="") return;
    82 var reg = formatString;
    83 reg = reg.replace(/yyyy/, y4);
    84 reg = reg.replace(/yy/, y2);
    85 reg = reg.replace(/MM/, M2);
    86 reg = reg.replace(/M/, M1);
    87 reg = reg.replace(/dd/, d2);
    88 reg = reg.replace(/d/, d1);
    89 reg = reg.replace(/HH/, H2);
    90 reg = reg.replace(/H/, H1);
    91 reg = reg.replace(/mm/, m2);
    92 reg = reg.replace(/m/, m1);
    93 reg = reg.replace(/ss/, s2);
    94 reg = reg.replace(/s/, s1);
    95 reg = new RegExp("^"+reg+"$");
    96 regexp = reg;
    97 return reg.test(dateString);
    98 }
    99
    100 function validateIndex(formatString){
    101
    102 var ia = new Array();
    103 var i = 0;
    104 yi = formatString.search(/yyyy/);
    105 if ( yi < 0 ) yi = formatString.search(/yy/);
    106 if (yi >= 0) {
    107 ia[i] = yi;
    108 i++;
    109 }
    110
    111 Mi = formatString.search(/MM/);
    112 if ( Mi < 0 ) Mi = formatString.search(/M/);
    113 if (Mi >= 0) {
    114 ia[i] = Mi;
    115 i++;
    116 }
    117
    118 di = formatString.search(/dd/);
    119 if ( di < 0 ) di = formatString.search(/d/);
    120 if (di >= 0) {
    121 ia[i] = di;
    122 i++;
    123 }
    124
    125 Hi = formatString.search(/HH/);
    126 if ( Hi < 0 ) Hi = formatString.search(/H/);
    127 if (Hi >= 0) {
    128 ia[i] = Hi;
    129 i++;
    130 }
    131
    132 mi = formatString.search(/mm/);
    133 if ( mi < 0 ) mi = formatString.search(/m/);
    134 if (mi >= 0) {
    135 ia[i] = mi;
    136 i++;
    137 }
    138
    139 si = formatString.search(/ss/);
    140 if ( si < 0 ) si = formatString.search(/s/);
    141 if (si >= 0) {
    142 ia[i] = si;
    143 i++;
    144 }
    145
    146 var ia2 = new Array(yi, Mi, di, Hi, mi, si);
    147
    148 for(i=0; i<ia.length-1; i++)
    149 for(j=0;j<ia.length-1-i;j++)
    150 if(ia[j]>ia[j+1]) {
    151 temp=ia[j];
    152 ia[j]=ia[j+1];
    153 ia[j+1]=temp;
    154 }
    155
    156 for (i=0; i<ia.length ; i++)
    157 for (j=0; j<ia2.length; j++)
    158 if(ia[i]==ia2[j]) {
    159 ia2[j] = i;
    160 }
    161
    162 return ia2;
    163 }
    164
    165
    166 function trim(str){
    167 return str.replace(/(^\s*)|(\s*$)/g, "");
    168 }
    169
    170 //-->
    171 </script>
    172
    173 <FORM METHOD=POST ACTION="">
    174 <INPUT TYPE="text" NAME="dater" value="02-29-2007">
    175 <INPUT TYPE="text" NAME="formater" value="MM-dd-yyyy">
    176 <INPUT TYPE="text" NAME="timer" value="" size="35">
    177 <INPUT TYPE="submit" onclick="this.form.timer.value=getDate(this.form.dater.value, this.form.formater.value);return false;">
    178 </FORM>
    179
    180 <FORM METHOD=POST ACTION="">
    181 <INPUT TYPE="text" NAME="dater" value="2004-2-29">
    182 <INPUT TYPE="text" NAME="formater" value="yyyy-M-d">
    183 <INPUT TYPE="text" NAME="timer" value="" size="35">
    184 <INPUT TYPE="submit" onclick="this.form.timer.value=getDate(this.form.dater.value, this.form.formater.value);return false;">
    185 </FORM>
    186
    187 <FORM METHOD=POST ACTION="">
    188 <INPUT TYPE="text" NAME="dater" value="12:56:34">
    189 <INPUT TYPE="text" NAME="formater" value="HH:mm:ss">
    190 <INPUT TYPE="text" NAME="timer" value="" size="35">
    191 <INPUT TYPE="submit" onclick="this.form.timer.value=getDate(this.form.dater.value, this.form.formater.value);return false;">
    192 </FORM>
    193
    194 <FORM METHOD=POST ACTION="">
    195 <INPUT TYPE="text" NAME="dater" value="2004-02-26 12:56:34">
    196 <INPUT TYPE="text" NAME="formater" value="yyyy-MM-dd HH:mm:ss">
    197 <INPUT TYPE="text" NAME="timer" value="" size="35">
    198 <INPUT TYPE="submit" onclick="this.form.timer.value=getDate(this.form.dater.value, this.form.formater.value);return false;">
    199 </FORM>
    200
    201 <FORM METHOD=POST ACTION="">
    202 <INPUT TYPE="text" NAME="dater" value="20040226125634">
    203 <INPUT TYPE="text" NAME="formater" value="yyyyMMddHHmmss">
    204 <INPUT TYPE="text" NAME="timer" value="" size="35">
    205 <INPUT TYPE="submit" onclick="this.form.timer.value=getDate(this.form.dater.value, this.form.formater.value);return false;">
    206 </FORM>
    207
    208 </body>
    209 </html>
    validateDateClean.html
    posted on 2008-12-30 00:08 rox 閱讀(20157) 評(píng)論(2)  編輯  收藏

    評(píng)論:
    # re: js根據(jù)字符串樣式轉(zhuǎn)換成日期類型(javascript string to date by pattern) 2009-01-23 01:32 | rox
    # re: js根據(jù)字符串樣式轉(zhuǎn)換成日期類型(javascript string to Date by pattern) 2014-06-24 09:19 | rox
    My97DatePicker日歷控件實(shí)現(xiàn)年、季、月、周、日選擇;季度選擇是用月選擇模擬的,無(wú)法隱藏月度選擇和前進(jìn)后退箭頭
    http://runjs.cn/detail/wu0o0p68  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产亚洲av片在线观看16女人| 久久精品夜色国产亚洲av| 亚洲av无码一区二区三区不卡 | 国产成人精品亚洲| 久久精品视频免费播放| 在线免费观看国产视频| 久久精品国产亚洲夜色AV网站| 亚洲国产综合AV在线观看| 成全在线观看免费观看大全| 女人18毛片水真多免费播放| 亚洲男人的天堂www| 亚洲久悠悠色悠在线播放| 国产在线播放线91免费| 午夜无遮挡羞羞漫画免费| 国产AV无码专区亚洲Av| 美女无遮挡免费视频网站| 120秒男女动态视频免费| 亚洲视频在线一区二区| 99久久国产亚洲综合精品| 成全视频在线观看免费| 免费v片视频在线观看视频| 亚洲国产成人久久精品app| 久久国产一片免费观看| 午夜毛片不卡高清免费| 亚洲美女视频网址| 九九热久久免费视频| 暖暖免费高清日本中文| 亚洲精品永久www忘忧草| 国产一级a毛一级a看免费视频| 国产免费观看a大片的网站| 亚洲明星合成图综合区在线| 中文字幕a∨在线乱码免费看| 日韩高清免费观看| 亚洲最大成人网色香蕉| 污污网站免费观看| 亚洲一区二区三区无码中文字幕| 国产天堂亚洲国产碰碰| 成年女人毛片免费播放视频m | 亚洲国产女人aaa毛片在线 | 亚洲av无码天堂一区二区三区| 亚洲国产成人99精品激情在线 |