最近做项目,遇到时间转换问题。时间控件,返回的时间格式是UTC格式的。
接下来,因为要做两个时间进行比较。于是就想了各种办法。
通过测试,写了一个JS的转换器。来达到转换成正常格式(yyyy-MM-dd)
JS代码如下:其实也就是通过字符串数组在拼接的方式转换成正常格式。
function Convertdate(UTCstr) { //Tue May 5 0:00:00 UTC+0800 2015 UTCstr=UTCstr+""; var date="";//month var month=new Array(); month["Jan"]=01;month["Feb"]=02;month["Mar"]=03;month["APR"]=04;month["May"]=05;month["Jan"]=06; month["Jul"]=7;month["Aug"]=8;month["Sep"]=9;month["Oct"]=10;month["Nov"]=11;month["Dec"]=12;//week var week=new Array(); week["Mon"]="一";week["Tue"]="二";week["Wed"]="三";week["Thu"]="四";week["Fri"]="五";week["Sat"]="六";week["Sun"]="日";//字符串拼接 str=UTCstr.split(" "); date=str[5]+"-"; //2015-05-05 00:00:00 格式 date=date+month[str[1]]+"-"+str[2]+" "+str[3]; //2015-05-05格式 //date=date+month[str[1]]+"-"+str[2]; //date=date+" 周"+week[str[0]]; return date;}
接下来就是对两个UTC格式的时间,进行大小比较了
var tcf=Convertdate(dt.cfrq).split('-'); var tdd=Convertdate(dt.ddrq).split('-'); var sdate=new Date(tcf[0],tcf[1],tcf[2]); var edate=new Date(tdd[0],tdd[1],tdd[2]); if(sdate.getTime() <=edate.getTime() ) { return true; } else { alert('到达日期应大于或等于出发日期'); return false; }
新闻热点
疑难解答