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

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

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

    隨筆-46  評論-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 閱讀(20158) 評論(2)  編輯  收藏

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

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲人成网亚洲欧洲无码久久| 2022久久国产精品免费热麻豆| 99视频免费播放| 久久亚洲高清综合| 日本激情猛烈在线看免费观看| 免费无码又爽又高潮视频 | 亚洲国产高清在线| aaa毛片免费观看| AV在线亚洲男人的天堂| 久香草视频在线观看免费| 亚洲色偷拍区另类无码专区| 99视频有精品视频免费观看| 亚洲AV日韩AV永久无码色欲| 四虎永久成人免费影院域名| 激情吃奶吻胸免费视频xxxx| 亚洲综合色区在线观看| 国产精品成人观看视频免费 | 精品亚洲综合在线第一区| 国产免费无码一区二区| 亚洲人成网址在线观看 | 91丁香亚洲综合社区| 久久精品网站免费观看| 色偷偷亚洲第一综合| 亚洲精品成人久久久| 一个人看的www免费视频在线观看| 99久久婷婷国产综合亚洲| 亚洲人成亚洲人成在线观看| 国产大片线上免费看| h视频免费高清在线观看| 亚洲av无码一区二区三区网站| www.免费在线观看| 亚洲综合精品伊人久久| 亚洲成a人无码av波多野按摩| 中国极品美軳免费观看| 亚洲成AV人片久久| 国产成人综合久久精品免费 | 亚洲国产黄在线观看| 成全影视免费观看大全二| 五月天婷婷免费视频| 亚洲精品福利在线观看| 免费va在线观看|