zoukankan      html  css  js  c++  java
  • javascript 日期格式化

    var str = '2008-11-11 11:11:09';
    alert(str.replace(/\s\d+:\d+:\d+$/,''));

    Date.prototype.format = function(format)  
    {   
      var o = {   
        "M+" : this.getMonth()+1, //month   
        "d+" : this.getDate(),    //day   
        "h+" : this.getHours(),   //hour   
        "m+" : this.getMinutes(), //minute   
        "s+" : this.getSeconds(), //second   
        "q+" : Math.floor((this.getMonth()+3)/3), //quarter   
         "S" : this.getMilliseconds() //millisecond   
      }   
       if(/(y+)/.test(format)) format=format.replace(RegExp.$1,   
         (this.getFullYear()+"").substr(4 - RegExp.$1.length));   
       for(var k in o)if(new RegExp("("+ k +")").test(format))   
         format = format.replace(RegExp.$1,   
           RegExp.$1.length==1 ? o[k] :    
             ("00"+ o[k]).substr((""+ o[k]).length));   
       return format;  
    }  

    showtime = new Date().format("yyyy-MM-dd hh:mm:ss");


    // 对Date的扩展,将 Date 转化为指定格式的String
    // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
    // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
    // 例子:
    // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
    // (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
    Date.prototype.Format = function(fmt)
    { //author: meizz
      var o = {
        "M+" : this.getMonth()+1,                 //月份
        "d+" : this.getDate(),                    //日
        "h+" : this.getHours(),                   //小时
        "m+" : this.getMinutes(),                 //分
        "s+" : this.getSeconds(),                 //秒
        "q+" : Math.floor((this.getMonth()+3)/3), //季度
        "S"  : this.getMilliseconds()             //毫秒
      };
      if(/(y+)/.test(fmt))
        fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
      for(var k in o)
        if(new RegExp("("+ k +")").test(fmt))
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
      return fmt;
    }


    //+---------------------------------------------------  
    //| 字符串转成日期类型   
    //| 格式 MM/dd/YYYY MM-dd-YYYY YYYY/MM/dd YYYY-MM-dd  
    //+---------------------------------------------------  
    function StringToDate(DateStr)  
    {   
      
        var converted = Date.parse(DateStr);  
        var myDate = new Date(converted);  
        if (isNaN(myDate))  
        {   
            //var delimCahar = DateStr.indexOf('/')!=-1?'/':'-';  
            var arys= DateStr.split('-');  
            myDate = new Date(arys[0],--arys[1],arys[2]);  
        }  
        return myDate;  
    }

    /**//*  
      将String类型解析为Date类型.  
      parseDate('2006-1-1') return new Date(2006,0,1)  
      parseDate(' 2006-1-1 ') return new Date(2006,0,1)  
      parseDate('2006-1-1 15:14:16') return new Date(2006,0,1,15,14,16)  
      parseDate(' 2006-1-1 15:14:16 ') return new Date(2006,0,1,15,14,16);  
      parseDate('2006-1-1 15:14:16.254') return new Date(2006,0,1,15,14,16,254)  
      parseDate(' 2006-1-1 15:14:16.254 ') return new Date(2006,0,1,15,14,16,254)  
      parseDate('不正确的格式') retrun null 
    */ 
    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 '';  
    }  

    其他有用的参考

    http://blog.stevenlevithan.com/archives/date-time-format

    http://gwbasic.javaeye.com/blog/36904

  • 相关阅读:
    正则表达式的妙用获得数组
    道不远人,话IO框架
    页面和控件的生命周期及其二者的关系
    深度解析 TypeConverter & TypeConverterAttribute (二)
    今天我顺利的在cnblogs安家,我要在这里写下辉煌
    AJAX or Ajax
    深度解析 TypeConverter & TypeConverterAttribute (一)
    SonarQube简单入门
    vuecli · Failed to download repo vuejstemplates/webpack: connect ETIMEDOUT 192.30.253.112:443
    Sqlmap使用教程
  • 原文地址:https://www.cnblogs.com/oletan/p/1724177.html
Copyright © 2011-2022 走看看