日期:2014-05-16  浏览次数:20354 次

服务器端日期被自动转换问题(解决马上给分)
服务器端代码如下,假设conn已定义
<%
printDate()
%>
<script     language= "javascript "   runat= "server ">
function   printDate(arr){
    var   sql= "select   date   from   T "
    var   rs   =server.createObject( "adodb.recordset ")
    rs.open   (sql,conn,1,3)
    var   str=rs(0)
    response.Write( "[ ' "+str+ " '] ")
}
本来date字段在数据库中存储格式为2007-8-22
当输出却为[ 'Wed   Aug   22   00:00:00   UTC+0800   2007 ']
如果是直接   response.Write(str)则输出为2007-8-22
请问谁碰到过这样的问题,有什么解决办法没有


------解决方案--------------------
这个问题我也碰到过,解决办法2种
1:在客户端用正则把字符串还原成你要的格式,比较麻烦,且效率较低
2:在 <%%> 中response.write出你的字串,如下
<%
function printDate(sql)
dim rs,str,sql
sql= "select date from T "
set rs =server.createObject( "adodb.recordset ")
rs.open sql,conn,1,3
str=rs(0)
response.Write( "[ ' "&str& " '] ")
end function
%>
然后在你的js中调用这个函数即可

------解决方案--------------------
用服务器端语言或者数据库SQL直接格式化后输出,用客户端JS也可以
------解决方案--------------------
sql server 滴 T-SQL 在 convert 为 datetime 时,
加上第三个参数 120 就是 lz 要滴格式了!