日期:2014-05-16 浏览次数:20546 次
在数据库中用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>