如果字符串中有空格或是其他分割符分割,可以用split方法先拆分,返回一个数组,再把这
个数组里的年月日作为参数传到new Date()里生成日期类型;
如过没有特殊分隔符,可以用substr(x,y)方法来取子字符串来生成日期,substr(x,y
)里,x表示取字串的开始位置,y表示子串的长度!
如果字符串以“/”分割可以用Date.parse(datestr)来转换
<mce:script language="JavaScript"><!--
function StringToDate(DateStr)
{
var converted = Date.parse('2009/01/05');
alert(converted);
alert(DateStr.substr(0,4)+"/"+DateStr.substr(5,2)+"/"+DateStr.substr(8,2));
var myDate = new Date(converted);
alert(myDate);
alert(myDate.getFullYear()+"/"+ (myDate.getMonth()+1) +"/"+myDate.getDate());
if (isNaN(DateStr))
{
//var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';
DateStr = "2008-08-08";
var arys= DateStr.split('-');
var d = new Date(arys[0], arys[1], arys[2]);
alert(d);
}
//alert(myDate);
return myDate;
}
// --></mce:script>
利用正则处理
new Date(a + "/" + b + "/" + c).getMonth() == b-1
a、b、c只要都是 能转换为数字的变量就可以(甚至可以是null ,布尔值),就能用new
Date(y,m,d)新建一个日期格式,
而按照你的要求,new Date(a,b,c).getMonth() == b-1为TRUE的时候就满足,否则则不满足
function IsDate(dateValue) {
var regex = new RegExp("^(?:(?:([0-9]{4}(-|/)(?:(?:0?[1,3-9]|1[0-2])(-|/)(?:29|30)|((?:0?[13578]|1[02])(-|/)31)))|([0-9]{4}(-|/)(?:0?[1-9]|1[0-2])(-
|/)(?:0?[1-9]|1d|2[0-8]))|(((?:(dd(?:0[48]|[2468][048]|[13579][26]))|(?:0
[48]00|[2468][048]00|[13579][26]00))(-|/)0?2(-|/)29))))$");
if (!regex.test(dateValue))
return false;
else
return true;
}
传过来判断
实例
function checkDate(text) {
if (!text) return false;
text = text.replace(/[/-]0?/g, "/");
if (!text.match(/^d{4}/d{1,2}/d{1,2}$/)) return false;
var d = new Date(text);
return [d.getFullYear(), d.getMonth() + 1, d.getDate()].join("/") == text;
}
document.open();
var datas = ["", "2010-01-01", "2010/02/30", "2010/02", "2010/22/30",
"2012/2/29", "2012/02/29"];
for(var i = 0; i < datas.length; i++) {
document.write(datas[i], "=", checkDate(datas[i]), "<br/>");
}
document.close();
输出
Assembly code
=false
2010-01-01=true
2010/02/30=false
2010/02=false
2010/22/30=false
2012/2/29=true
2012/02/29=true
常用方法
<script language="网页特效">
/////////////////////////////////e///////////////////////
// 取得当前日期,格式yyyy-mm-dd
////////////////////////////////////////////////////////
function GetCurrentDate()
{
var Year=0;
var Month=0;
var Day=0;
var CurrentDate = new Date();return ChangeDateToString(CurrentDate);
}/////////////////////////////////e///////////////////////
// 取得当前日期,格式yyyy-mm-dd hh:mm
////////////////////////////////////////////////////////
function GetCurrentTime()
{
var Year=0;
var Month=0;
var Day=0;
var CurrentDate = new Date();return ChangeTimeToString(CurrentDate);
}////////////////////////////////////////////////////////
// 将日期类型转换成字符串型格式yyyy-MM-dd
////////////////////////////////////////////////////////
function ChangeDateToString(DateIn)
{
var Year=0;
var Month=0;
var Day=0;var CurrentDate="";
//初始化时间
Year = DateIn.getYear();
Month = DateIn.getMonth()+1;
Day = DateIn.getDate();CurrentDate = Year + "-";
if (Month >= 10 )
{
CurrentDate = CurrentDate + Month + "-";
}
else
{
CurrentDate = CurrentDate + "0" + Month + "-";
}
if (Day >= 10 )
{
CurrentDate = CurrentDate + Day ;
}
else
{
CurrentDate = CurrentDate + "0" + Day ;
}
return CurrentDate;
}///////////////////////////////////////////////////////
// 将日期类型转换成字符串型格式yyyy-MM-dd hh:mm
////////////////////////////////////////////////////////
function ChangeTimeToString(DateIn)
{
var Year=0;
var Month=0;
var Day=0;
var Hour = 0;
var Minute = 0;
var CurrentDate="";//初始化时间
Year = DateIn.getYear();
Month = DateIn.getMonth()+1;
Day = DateIn.getDate();
Hour = DateIn.getHours();
Minute = DateIn.getMinutes();
CurrentDate = Year + "-";
if (Month >= 10 )
{
CurrentDate = CurrentDate + Month + "-";
}
else
{
CurrentDate = CurrentDate + "0" + Month + "-";
}
if (Day >= 10 )
{
CurrentDate = CurrentDate + Day ;
}
else
{
CurrentDate = CurrentDate + "0" + Day ;
}
if(Hour >=10)
{
CurrentDate = CurrentDate + " " + Hour ;
}
else
{
CurrentDate = CurrentDate + " 0" + Hour ;
}
if(Minute >=10)
{
CurrentDate = CurrentDate + ":" + Minute ;
}
else
{
CurrentDate = CurrentDate + ":0" + Minute ;
}
return CurrentDate;
}
</script>