js String 转换成Date数据 js

[quote]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<script type="text/javascript">
var y4 = "([0-9]{4})";
/** year : /yy/ */
var y2 = "([0-9]{2})";
/** index year */
var yi = -1;

/** month : /MM/ */
var M2 = "(0[1-9]|1[0-2])";
/** month : /M/ */
var M1 = "([1-9]|1[0-2])";
/** index month */
var Mi = -1;

/** day : /dd/ */
var d2 = "(0[1-9]|[1-2][0-9]|30|31)";
/** day : /d/ */
var d1 = "([1-9]|[1-2][0-9]|30|31)";
/** index day */
var di = -1;

/** hour : /HH/ */
var H2 = "([0-1][0-9]|20|21|22|23)";
/** hour : /H/ */
var H1 = "([0-9]|1[0-9]|20|21|22|23)";
/** index hour */
var Hi = -1;

/** minute : /mm/ */
var m2 = "([0-5][0-9])";
/** minute : /m/ */
var m1 = "([0-9]|[1-5][0-9])";
/** index minute */
var mi = -1;

/** second : /ss/ */
var s2 = "([0-5][0-9])";
/** second : /s/ */
var s1 = "([0-9]|[1-5][0-9])";
/** index month */
var si = -1;

var regexp;
function validateDate(dateString, formatString) {
var dateString = trim(dateString);
if (dateString == "")
return;
var reg = formatString;
reg = reg.replace(/yyyy/, y4);
reg = reg.replace(/yy/, y2);
reg = reg.replace(/MM/, M2);
reg = reg.replace(/M/, M1);
reg = reg.replace(/dd/, d2);
reg = reg.replace(/d/, d1);
reg = reg.replace(/HH/, H2);
reg = reg.replace(/H/, H1);
reg = reg.replace(/mm/, m2);
reg = reg.replace(/m/, m1);
reg = reg.replace(/ss/, s2);
reg = reg.replace(/s/, s1);
reg = new RegExp("^" + reg + "$");
regexp = reg;
return reg.test(dateString);
}

// 53
function getDate(dateString, formatString) {
if (validateDate(dateString, formatString)) {
var now = new Date();
var vals = regexp.exec(dateString);
var index = validateIndex(formatString);
var year = index[0] >= 0 ? vals[index[0] + 1] : now.getFullYear();
var month = index[1] >= 0 ? (vals[index[1] + 1] - 1) : now.getMonth();
var day = index[2] >= 0 ? vals[index[2] + 1] : now.getDate();
var hour = index[3] >= 0 ? vals[index[3] + 1] : "";
var minute = index[4] >= 0 ? vals[index[4] + 1] : "";
var second = index[5] >= 0 ? vals[index[5] + 1] : "";

var validate;

if (hour == "")
validate = new Date(year, month, day);
else
validate = new Date(year, month, day, hour, minute, second);

if (validate.getDate() == day)
return validate;

}
alert("wrong date");
}
function validateIndex(formatString) {

var ia = new Array();
var i = 0;
yi = formatString.search(/yyyy/);
if (yi < 0)
yi = formatString.search(/yy/);
if (yi >= 0) {
ia[i] = yi;
i++;
}

Mi = formatString.search(/MM/);
if (Mi < 0)
Mi = formatString.search(/M/);
if (Mi >= 0) {
ia[i] = Mi;
i++;
}

di = formatString.search(/dd/);
if (di < 0)
di = formatString.search(/d/);
if (di >= 0) {
ia[i] = di;
i++;
}

Hi = formatString.search(/HH/);
if (Hi < 0)
Hi = formatString.search(/H/);
if (Hi >= 0) {
ia[i] = Hi;
i++;
}

mi = formatString.search(/mm/);
if (mi < 0)
mi = formatString.search(/m/);
if (mi >= 0) {
ia[i] = mi;
i++;
}

si = formatString.search(/ss/);
if (si < 0)
si = formatString.search(/s/);
if (si >= 0) {
ia[i] = si;
i++;
}

var ia2 = new Array(yi, Mi, di, Hi, mi, si);

for (i = 0; i < ia.length - 1; i++)
for (j = 0; j < ia.length - 1 - i; j++)
if (ia[j] > ia[j + 1]) {
temp = ia[j];
ia[j] = ia[j + 1];
ia[j + 1] = temp;
}

for (i = 0; i < ia.length; i++)
for (j = 0; j < ia2.length; j++)
if (ia[i] == ia2[j]) {
ia2[j] = i;
}
return ia2;
}

function trim(str) {
return str.replace(/(^\s*)|(\s*$)/g, "");
}
</script>
<body>

<FORM METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="dater" value="02-28-2007">
<INPUT TYPE="text" NAME="formater" value="MM-dd-yyyy">
<INPUT TYPE="text" NAME="timer" value="" size="35">
<INPUT TYPE="submit" οnclick="this.form.timer.value=getDate(this.form.dater.value, this.form.formater.value);return false;">
</FORM>

<FORM METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="dater" value="2004-2-29">
<INPUT TYPE="text" NAME="formater" value="yyyy-M-d">
<INPUT TYPE="text" NAME="timer" value="" size="35">
<INPUT TYPE="submit" οnclick="this.form.timer.value=getDate(this.form.dater.value, this.form.formater.value);return false;">
</FORM>

<FORM METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="dater" value="12:56:34">
<INPUT TYPE="text" NAME="formater" value="HH:mm:ss">
<INPUT TYPE="text" NAME="timer" value="" size="35">
<INPUT TYPE="submit" οnclick="this.form.timer.value=getDate(this.form.dater.value, this.form.formater.value);return false;">
</FORM>
<FORM METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="dater" value="2010-04-20 08:41:01">
<INPUT TYPE="text" NAME="formater" value="yyyy-MM-dd HH:mm:ss">
<INPUT TYPE="text" NAME="timer" value="" size="35">
<INPUT TYPE="submit" οnclick="this.form.timer.value=getDate(this.form.dater.value, this.form.formater.value);return false;">
</FORM>

<FORM METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="dater" value="20040226125634">
<INPUT TYPE="text" NAME="formater" value="yyyyMMddHHmmss">
<INPUT TYPE="text" NAME="timer" value="" size="35">
<INPUT TYPE="submit" οnclick="this.form.timer.value=getDate(this.form.dater.value, this.form.formater.value);return false;">
</FORM>

</body>
</html>


[/quote]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值