<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 閱讀(20157) 評論(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  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 99久久人妻精品免费二区| 亚洲精品国产免费| 亚洲丁香婷婷综合久久| 日韩免费福利视频| 成人网站免费看黄A站视频| 亚洲精品国产精品国自产网站 | 免费看国产成年无码AV片| 国产成人+综合亚洲+天堂| 日韩精品一区二区亚洲AV观看| 四虎成人精品一区二区免费网站| 日韩国产欧美亚洲v片| 国产亚洲精品va在线| 女人18毛片免费观看| 怡红院免费的全部视频| 国产成人亚洲合集青青草原精品| 国产亚洲色视频在线| 性做久久久久久久免费看| 一区二区三区免费视频播放器| 亚洲乱码一二三四五六区| 青青草原亚洲视频| 青青青青青青久久久免费观看| 三级黄色免费观看| 亚洲大码熟女在线观看| 久久精品亚洲综合| 亚洲国产成人五月综合网 | 国产成人无码区免费网站| 亚洲综合无码一区二区痴汉| 亚洲a在线视频视频| 亚洲国产aⅴ综合网| 99精品全国免费观看视频| 免费国产99久久久香蕉| 国产成人+综合亚洲+天堂| 亚洲av永久综合在线观看尤物| 亚洲2022国产成人精品无码区| 亚洲成av人在片观看| 日产乱码一卡二卡三免费| 一个人在线观看视频免费| 日韩在线不卡免费视频一区| 国产精品小视频免费无限app| 亚洲国产午夜精品理论片在线播放| 亚洲成人黄色在线观看|