当前位置: 代码迷 >> JavaScript >> jstl 解析long型数据替日期
  详细解决方案

jstl 解析long型数据替日期

热度:162   发布时间:2012-11-07 09:56:10.0
jstl 解析long型数据为日期

在数据库中用long型存放日期,从数据库中取出日期展现在jsp页面上时用jstl:

<fmt: formatDate value="${date}" pattern="yyyy-MM-dd HH:ii:ss" />

这时会出错,因为<fmt: formatDate标签需要的是java.util.Date型的数据。

这时不用jstl,可以这样做:

<script type="text/javascript">

function parseDate(str){?????
? if(typeof str == 'string'){?????
??? var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);?????
??? if(results && results.length>3)?????
????? return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));??????
??? results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);?????
??? if(results && results.length>6)?????
????? return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));??????
??? results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);?????
??? if(results && results.length>7)?????
????? return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]),parseInt(results[7]));??????
? }?????
? return null;?????
}?????
????
/*???
? 将Date/String类型,解析为String类型.???
? 传入String类型,则先解析为Date类型???
? 不正确的Date,返回 ''???
? 如果时间部分为0,则忽略,只返回日期部分.???
*/????
function formatDate(v){?????
? if(typeof v == 'string') v = parseDate(v);?????
? if(v instanceof Date){?????
??? var y = v.getFullYear();?????
??? var m = v.getMonth() + 1;?????
??? var d = v.getDate();?????
??? var h = v.getHours();?????
??? var i = v.getMinutes();?????
??? var s = v.getSeconds();?????
??? var ms = v.getMilliseconds();????????
??? //if(ms>0)
??? //return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s + '.' + ms;?????
??? if(h>0 || i>0 || s>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;?????
??? return y + '-' + m + '-' + d;?????
? }?????
? return '';?????
}

</script>

?

<td>

<script type="text/javascript">?

?var d= new Date(1283170971359);??

formatDate(d);

?</script>

</td>

  相关解决方案