返回列表

javascript数字转换为日期,字符串转换为日期,日期格式化

默认分类 2011-12-28 00:45:48

javascript 数字转换为日期, 字符串转换为日期, 日期格式化 demo

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3.   
  4. <head>  
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  6. <title>Untitled 1</title>  
  7. <script type="text/javascript">  
  8. <!--  
  9. function formatDate(date,fmt) {       
  10.     fmtfmt = fmt||'yyyy-MM-dd HH:mm';  
  11.     var o = {       
  12.     "M+" : date.getMonth()+1, //月份       
  13.     "d+" : date.getDate(), //日       
  14.     "h+" : date.getHours()%12 == 0 ? 12 : date.getHours()%12, //小时       
  15.     "H+" : date.getHours(), //小时       
  16.     "m+" : date.getMinutes(), //分       
  17.     "s+" : date.getSeconds(), //秒       
  18.     "q+" : Math.floor((date.getMonth()+3)/3), //季度       
  19.     "S" : date.getMilliseconds() //毫秒       
  20.     };       
  21.     var week = {       
  22.     "0" : "/u65e5",       
  23.     "1" : "/u4e00",       
  24.     "2" : "/u4e8c",       
  25.     "3" : "/u4e09",       
  26.     "4" : "/u56db",       
  27.     "5" : "/u4e94",       
  28.     "6" : "/u516d"      
  29.     };       
  30.     if(/(y+)/.test(fmt)){       
  31.         fmtfmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));       
  32.     }       
  33.     if(/(E+)/.test(fmt)){       
  34.         fmtfmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "/u661f/u671f" : "/u5468") : "")+week[date.getDay()+""]);       
  35.     }       
  36.     for(var k in o){       
  37.         if(new RegExp("("+ k +")").test(fmt)){       
  38.             fmtfmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));       
  39.         }       
  40.     }       
  41.     return fmt;       
  42. }    
  43. /*   
  44.   将String类型解析为Date类型.   
  45.   parseDate('2006-1-1') return new Date(2006,0,1)   
  46.   parseDate(' 2006-1-1 ') return new Date(2006,0,1)   
  47.   parseDate('2006-1-1 15:14:16') return new Date(2006,0,1,15,14,16)   
  48.   parseDate(' 2006-1-1 15:14:16 ') return new Date(2006,0,1,15,14,16);   
  49.   parseDate('不正确的格式') retrun null   
  50. */    
  51. function parseDate(str){    
  52.     str = String(str).replace(/^[\s\xa0]+|[\s\xa0]+$/ig, '');  
  53.     var results = null;  
  54.       
  55.     //秒数 #9744242680  
  56.     results = str.match(/^ *(\d{10}) *$/);    
  57.     if(results && results.length>0)    
  58.       return new Date(parseInt(str)*1000);     
  59.       
  60.     //毫秒数 #9744242682765  
  61.     results = str.match(/^ *(\d{13}) *$/);    
  62.     if(results && results.length>0)    
  63.       return new Date(parseInt(str));     
  64.       
  65.     //20110608  
  66.     results = str.match(/^ *(\d{4})(\d{2})(\d{2}) *$/);    
  67.     if(results && results.length>3)    
  68.       return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));     
  69.       
  70.     //20110608 1010  
  71.     results = str.match(/^ *(\d{4})(\d{2})(\d{2}) +(\d{2})(\d{2}) *$/);    
  72.     if(results && results.length>6)    
  73.       return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]));     
  74.       
  75.     //2011-06-08  
  76.     results = str.match(/^ *(\d{4})[\._\-\/\\](\d{1,2})[\._\-\/\\](\d{1,2}) *$/);    
  77.     if(results && results.length>3)    
  78.       return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));     
  79.       
  80.     //2011-06-08 10:10  
  81.     results = str.match(/^ *(\d{4})[\._\-\/\\](\d{1,2})[\._\-\/\\](\d{1,2}) +(\d{1,2}):(\d{1,2}) *$/);    
  82.     if(results && results.length>6)    
  83.       return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]));     
  84.       
  85.     //2011-06-08 10:10:10  
  86.     results = str.match(/^ *(\d{4})[\._\-\/\\](\d{1,2})[\._\-\/\\](\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);    
  87.     if(results && results.length>6)    
  88.       return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));     
  89.       
  90.     return null;    
  91. }   
  92.   
  93. function doit(){  
  94.     //todo  
  95.     var s = Math.floor(new Date().getTime());  
  96.     document.getElementById('dd').innerHTML = s;  
  97.     alert(formatDate(parseDate(s)));  
  98. }  
  99.   
  100. //-->  
  101. </script>  
  102. </head>  
  103.   
  104. <body><button type="button" onclick="doit()">doit</button>  
  105. <div id="dd"></div>  
  106. </body>  
  107.   
  108. </html>