JS解析,格式化日期

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

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值