很牛的javascript日期轉換函式

來源:互聯網
上載者:User
  1.  /*將String類型解析為Date類型.   
  2.   parseDate('2006-1-1') return new Date(2006,0,1)   
  3.   parseDate(' 2006-1-1 ') return new Date(2006,0,1)   
  4.   parseDate('2006-1-1 15:14:16') return new Date(2006,0,1,15,14,16)   
  5.   parseDate(' 2006-1-1 15:14:16 ') return new Date(2006,0,1,15,14,16);   
  6.   parseDate('2006-1-1 15:14:16.254') return new Date(2006,0,1,15,14,16,254)   
  7.   parseDate(' 2006-1-1 15:14:16.254 ') return new Date(2006,0,1,15,14,16,254)   
  8.   parseDate('不正確的格式') retrun null   
  9. */    
  10. function parseDate(str){     
  11.   if(typeof str == 'string'){     
  12.     var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);     
  13.     if(results && results.length>3)     
  14.       return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));      
  15.     results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);     
  16.     if(results && results.length>6)     
  17.       return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));      
  18.     results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);     
  19.     if(results && results.length>7)     
  20.       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]));      
  21.   }     
  22.   return null;     
  23. }     
  24.     
  25. /*   
  26.   將Date/String類型,解析為String類型.   
  27.   傳入String類型,則先解析為Date類型   
  28.   不正確的Date,返回 ''   
  29.   如果時間部分為0,則忽略,只返回日期部分.   
  30. */    
  31. function formatDate(v){     
  32.   if(typeof v == 'string') v = parseDate(v);     
  33.   if(v instanceof Date){     
  34.     var y = v.getFullYear();     
  35.     var m = v.getMonth() + 1;     
  36.     var d = v.getDate();     
  37.     var h = v.getHours();     
  38.     var i = v.getMinutes();     
  39.     var s = v.getSeconds();     
  40.     var ms = v.getMilliseconds();        
  41.     if(ms>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s + '.' + ms;     
  42.     if(h>0 || i>0 || s>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;     
  43.     return y + '-' + m + '-' + d;     
  44.   }     
  45.   return '';     
  46. }   

http://lihui5028.iteye.com/blog/376095

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.